eRacks/HUMBOLDT

The eRacks/HUMBOLDT custom gaming laptop is unmatched with its powerful Intel Core i5 / i7 processor, and up to 32GB of DDR4 memory, nothing will slow you down. Whether you are dominating the field in your favorite game, or creating your next work of art, The eRacks/ HUMBOLDT will have everything you need to get the job done.

The new eRacks/ HUMBOLDT is the ultimate gaming machine and creative mobile studio with the latest high-performance technologies, so you can do more with it. With a quad-core Intel® Core™ i7 processor, NVIDIA® GeForce® GTX 950M graphics, up to 32GB of RAM, Intel Wireless-AC WiFi, Bluetooth, and dual storage (SSD+HDD or dual SSDs), the new eRacks/HUMBOLDT delivers serious performance that can take on the most intensive applications with ease.

The backlit keyboard delivers illumination bright enough to make typing and gaming easy and fun in low-light environments, and even in the dark.

The nVidia GeForce GTX 950M delivers great gaming performance at 1080p with inspired GameWorks technologies for fluid, life-like visuals. With GeForce Experience for quick gaming optimization, and BatteryBoost for improved battery life you can game longer, unplugged.

Note that the 17.3" Humboldt chassis can be built with a variety of even higher-end add-ons, such as nVidia GTX-960/965/970/980 Graphics up to 8GB, up to a 4k/UHD display, up to 4 SSDs internally (2 2.5" + 2 M.2), an i7-6700K Extreme CPU, Color-illuminated keyboard backlighting, Killer Double-Shot Pro Networking, and more.

We can install Steam on request, and will even instrall SteamOS (Steam's LInux Distro) via custom consulting, just tell us your needs and your project -

Contact us today to have us quote you a custom build, or simply put your requests in the "Notes" field, enter your email, and click "Get a quote"!

 


Features & Specifications

Processor

6th Generation Intel® Core™ i5-6300HQ Processor (2.30GHz), 6MB L3 Cache
6th Generation Intel® Core™ i7-6700HQ Processor (2.60GHz), 6MB L3 Cache

Core Logic

Intel® HM170 Express Chipset

Memory

Supports Dual Channel DDR4, Expandable up to 32GB, depends on 8GB/16GB SODIMM module
Two 260Pin SODIMM sockets, support for DDR4 2133MHz (Real operation frequency depends on processor)

Display

17.3” Full HD (1920x1080) Matte Display

Graphics
Processor
Switchable GPU by NVIDIA® Optimus™ Technology -NVIDIA® GeForce™ GTX 950M GPU / Intel® HD Graphics

NVIDIA® GeForce™ GTX 950M GPU with 2GB GDDR5
- Supports PCIe x8, Battery Boost 2.0 Ready
- NVIDIA® PhysX® Technology, NVIDIA® CUDA™ Technology

Intel® HD 530 Graphics (Integrated on 6th Gen Intel Core processor)
- Dynamic frequency
- Intel Dynamic Video Memory Technology supporting shared memory up to 1.7GB
- Intel® Quick Sync Video, Intel® Clear Video HD Technology

Storage

One changeable 2.5” 9.5mm HDD/SSD, SATA interface
(Factory option) One changeable 12.7mm Super Multi ODD / Caddy Bay for 2.5" 9.5mm HDD, SATA Interface
(Factory Option) One M.2 2280 SSD, SATA or PCIe Gen3 x4 interface

Audio System

High Definition audio interface - 1 Built-in Microphone, 2 Built-in Speakers
Sound Blaster™ Cinema 2, Amplified Headphone output

Pointing Device

Integrated touchpad with multi-gesture and scrolling function

Keyboard

Full sized white-LED illuminated keyboard with numeric pad

I/O Ports

1 HDMI 1.4b output Port (with HDCP), 1 External VGA output Port
3 USB 3.0 (USB 3.1 Gen 1) Ports, 1 USB 2.0 Port
1 Headphone Jack, 1 Microphone Jack
1 RJ-45 LAN (10/100/1000Mbps)

Slots

9-in-1 Card Reader (MMC/RSMMC/SD/Mini-SD/SDHC/SDXC/MS/MS Pro/MS Duo)
Two MiniCard Slots
- 1st for WLAN Combo M.2 2230 Card with PCIe and USB interface
- 2nd for SSD M.2 2280 Card with SATA / PCIe Gen3 x4 interface

Communication

Built-in Gigabit Ethernet LAN
Intel® Dual Band Wireless-AC + Bluetooth, M.2 interface

Security

Kensington® Lock

Power System

Removable 6 cell smart Lithium-Ion battery pack 62.16Wh
Full Range AC-in 100~240V, 50~60Hz, 120W AC Adapter, DC output 19.5V, 6.15A

Physical Characteristic

6.83 LBs with ODD and Battery Pack
16.26" (w) x 10.74" (d) x 1.43" (h)

Other Features

Built-in 2.0M FHD Video Camera


Configure eRacks/HUMBOLDT

Choose the desired options and click "Add to Cart". You may also request a quote, please add additional requests and information in the "Notes" field. Your quote request will be sent to your profile's eMail if you are logged in, otherwise enter the email address below (required only if not logged in).

Current Configuration

Base Price: $ 1695.00 As Configured: $ 1695.00
Configuration Summary:
Default Configuration
Option Choices More Info Add/Subtract
Base SystemHUMBOLDT 17.3" 1920x1080
Mobile CPUIntel Core i5 2.3GHz CPU
Memory DDR48GB DDR4 Memory
Slim Optical Drive BaySlimline CD ROM
Internal 2.5" Drive BayLaptop 1 TB SATA
Internal M.2 Drive Baynone
Operating SystemUbuntu Linux 18.04 LTS Desktop Edition
Desktop SoftwareCinnamon (Mint default)
Add-on SoftwareSteam
Extrasnone
More Extrasnone
Org Contribution$5 to the Ubuntu Studio Project
WarrantyStandard 1yr full /3yr limited warranty
Notes Enter notes or custom instructions for this item here  

To request a quote, please add additional requests and information in the "Notes" field, above. Your quote request will be sent to your profile's eMail if you are logged in, otherwise enter the email address below (required only if not logged in).

«

Versions

Package Name Version
Django 2.2.14
Python 3.8.3
compressor Compressor 2.4
debug_toolbar Debug Toolbar 2.2
django_wysiwyg Django_Wysiwyg 0.8.0
easy_thumbnails Easy_Thumbnails <module 'easy_thumbnails.get_version' from '/usr/local/lib/python3.8/site-packages/easy_thumbnails/get_version.py'>
filebrowser Filebrowser 3.13.1
grappelli Grappelli 2.14.2
guardian Guardian 2.3.0
haystack Haystack 0.0.dev0
secure_mail Secure Mail 1.1.0
taggit Taggit 1.3.0
userena Userena 6.0.0

Time

Resource usage

Resource Value
User CPU time 5608.414 msec
System CPU time 949.268 msec
Total CPU time 6557.682 msec
Elapsed time 7762.636 msec
Context switches 8 voluntary, 1089 involuntary

Browser timing

Timing attribute Timeline Milliseconds since navigation start (+length)

Settings from settings.prod

Setting Value
ABSOLUTE_URL_OVERRIDES {}
ADMINS (('Joe', 'joe@eracks.com'), ('Info', 'info@eracks.com'))
ALLOWED_HOSTS ['localhost', '127.0.0.1', '[::1]', '.eracks.com', '172.18.0.5', 'testserver', '127.0.1.1', '172.18.1.3', '172.18.1.4', '47.152.181.244', '118.179.58.19', '118.179.78.103', '184.181.113.186', '192.168.1.12', 'web']
AMZ_PAYMENTS_API_ENDPOINT '********************'
AMZ_PAY_ACCESS_KEY_ID '********************'
AMZ_PAY_CLIENT_ID 'amzn1.application-oa2-client.1e7194acc71b4202a2d8971d9ddba100'
AMZ_PAY_CLIENT_SECRET '********************'
AMZ_PAY_LOGIN_API_URL '********************'
AMZ_PAY_MERCHANT_ID 'A3HOAJNU7DW6RD'
AMZ_PAY_PROFILE_API_URL '********************'
AMZ_PAY_SECRET_KEY '********************'
AMZ_PAY_STORE_NAME 'eRacks Systems'
ANONYMOUS_USER_NAME 'AnonymousUser'
APPEND_SLASH True
AUTHENTICATION_BACKENDS ('userena.backends.UserenaAuthenticationBackend', 'guardian.backends.ObjectPermissionBackend', 'django.contrib.auth.backends.ModelBackend')
AUTH_PASSWORD_VALIDATORS '********************'
AUTH_PROFILE_MODULE 'customers.Customer'
AUTH_USER_MODEL 'auth.User'
BASE_DIR '/home/joe/eracks12/web'
CACHES {'default': {'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'KEY_PREFIX': '********************', 'LOCATION': 'memcache:11211'}}
CACHE_MIDDLEWARE_ALIAS 'default'
CACHE_MIDDLEWARE_KEY_PREFIX '********************'
CACHE_MIDDLEWARE_SECONDS 600
COMPRESSORS {'css': 'compressor.css.CssCompressor', 'js': 'compressor.js.JsCompressor'}
COMPRESS_CACHEABLE_PRECOMPILERS ()
COMPRESS_CACHE_BACKEND 'default'
COMPRESS_CACHE_KEY_FUNCTION '********************'
COMPRESS_CLEAN_CSS_ARGUMENTS ''
COMPRESS_CLEAN_CSS_BINARY 'cleancss'
COMPRESS_CLOSURE_COMPILER_ARGUMENTS ''
COMPRESS_CLOSURE_COMPILER_BINARY 'java -jar compiler.jar'
COMPRESS_CSS_HASHING_METHOD 'mtime'
COMPRESS_DATA_URI_MAX_SIZE 1024
COMPRESS_DEBUG_TOGGLE 'nocompress'
COMPRESS_ENABLED False
COMPRESS_FILTERS {'css': ['compressor.filters.css_default.CssAbsoluteFilter'], 'js': ['compressor.filters.jsmin.JSMinFilter']}
COMPRESS_JINJA2_GET_ENVIRONMENT <function CompressorConf.JINJA2_GET_ENVIRONMENT at 0x7fbbefbf78b0>
COMPRESS_MINT_DELAY 30
COMPRESS_MTIME_DELAY 10
COMPRESS_OFFLINE False
COMPRESS_OFFLINE_CONTEXT {'STATIC_URL': '/static/'}
COMPRESS_OFFLINE_MANIFEST 'manifest.json'
COMPRESS_OFFLINE_TIMEOUT 31536000
COMPRESS_OUTPUT_DIR 'CACHE'
COMPRESS_PARSER 'compressor.parser.AutoSelectParser'
COMPRESS_PRECOMPILERS ()
COMPRESS_REBUILD_TIMEOUT 2592000
COMPRESS_ROOT '/home/joe/eracks12/web/static'
COMPRESS_STORAGE 'compressor.storage.CompressorFileStorage'
COMPRESS_TEMPLATE_FILTER_CONTEXT {'STATIC_URL': '/static/'}
COMPRESS_URL '/static/'
COMPRESS_URL_PLACEHOLDER '/__compressor_url_placeholder__/'
COMPRESS_VERBOSE False
COMPRESS_YUGLIFY_BINARY 'yuglify'
COMPRESS_YUGLIFY_CSS_ARGUMENTS '--terminal'
COMPRESS_YUGLIFY_JS_ARGUMENTS '--terminal'
COMPRESS_YUI_BINARY 'java -jar yuicompressor.jar'
COMPRESS_YUI_CSS_ARGUMENTS ''
COMPRESS_YUI_JS_ARGUMENTS ''
CONTACT_EMAILS ['info@eracks.com', 'joe@eracks.com']
CSRF_COOKIE_AGE 31449600
CSRF_COOKIE_DOMAIN None
CSRF_COOKIE_HTTPONLY False
CSRF_COOKIE_NAME 'csrftoken'
CSRF_COOKIE_PATH '/'
CSRF_COOKIE_SAMESITE 'Lax'
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_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': 'postgres', 'NAME': 'eracksdb', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': 'postgres', 'MIRROR': None, 'NAME': 'eracksdb_test', 'PASSWORD': '********************', 'SERIALIZE': False, 'USER': 'eracks'}, 'TIME_ZONE': None, 'USER': 'eracks'}}
DATABASE_ROUTERS []
DATA_UPLOAD_MAX_MEMORY_SIZE 2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS 1000
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', '%Y-%m-%d', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%Y', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M', '%m/%d/%y']
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
DECIMAL_SEPARATOR '.'
DEFAULT_CHARSET 'utf-8'
DEFAULT_CONTENT_TYPE 'text/html'
DEFAULT_EXCEPTION_REPORTER_FILTER 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE 'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL 'support@eracks.com'
DEFAULT_INDEX_TABLESPACE ''
DEFAULT_TABLESPACE ''
DISALLOWED_USER_AGENTS []
DJANGO_WYSIWYG_FLAVOR 'ckeditor'
DJANGO_WYSIWYG_MEDIA_URL '//cdn.ckeditor.com/4.5.3/full-all/'
DOCKER True
EMAIL_BACKEND 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST 'mail.eracks.com'
EMAIL_HOST_PASSWORD '********************'
EMAIL_HOST_USER 'relay@librehost.com'
EMAIL_PORT 587
EMAIL_SSL_CERTFILE None
EMAIL_SSL_KEYFILE '********************'
EMAIL_SUBJECT_PREFIX '[Django] '
EMAIL_TIMEOUT None
EMAIL_USE_LOCALTIME True
EMAIL_USE_SSL False
EMAIL_USE_TLS True
FILEBROWSER_DIRECTORY ''
FILEBROWSER_VERSIONS_BASEDIR ''
FILE_CHARSET 'utf-8'
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 None
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.DjangoTemplates'
GITLAB False
GOOGLE_ANALYTICS_DOMAIN 'eracks.com'
GOOGLE_ANALYTICS_ID 'UA-37665012-1'
GRAPPELLI_INDEX_DASHBOARD 'eracks.dashboard.CustomIndexDashboard'
HAYSTACK_CONNECTIONS {'default': {'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', 'PATH': '/home/joe/eracks12/web/eracks/whoosh_index'}}
HOSTNAME 'web'
IGNORABLE_404_URLS []
INFO_EMAIL 'info@eracks.com'
INSTALLED_APPS ['grappelli.dashboard', 'grappelli', 'filebrowser', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'captcha', 'compressor', 'apps.catax', 'apps.home', 'apps.components', 'apps.customers', 'apps.orders', 'apps.products', 'apps.quotes', 'quickpages', 'taggit', 'django.contrib.sites', 'django.contrib.redirects', 'debug_toolbar', 'secure_mail', 'django_wysiwyg', 'memcache_status', 'haystack', 'utils', 'userena', 'guardian', 'easy_thumbnails']
INSTANCE 'prod'
INTERNAL_IPS ('127.0.0.1', '127.0.1.1', '47.143.87.9', '47.152.181.244', '68.4.180.198', '172.18.0.1', '172.18.0.2', '172.18.0.3', '172.18.0.4', '172.18.0.5', '172.19.0.1', '172.19.0.2', '172.19.0.3', '172.19.0.4', '172.19.0.5', '216.172.133.7')
IP '172.18.0.5'
LANGUAGES [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('th', 'Thai'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')]
LANGUAGES_BIDI ['he', 'ar', 'fa', 'ur']
LANGUAGE_CODE 'en-us'
LANGUAGE_COOKIE_AGE None
LANGUAGE_COOKIE_DOMAIN None
LANGUAGE_COOKIE_NAME 'django_language'
LANGUAGE_COOKIE_PATH '/'
LOADING_FIXTURES False
LOCALDEV False
LOCALE_PATHS []
LOGGING {'disable_existing_loggers': False, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': 'django.log', 'level': 'INFO'}}, 'loggers': {'django': {'handlers': ['file'], 'level': 'INFO', 'propagate': True}}, 'version': 1}
LOGGING_CONFIG 'logging.config.dictConfig'
LOGIN_REDIRECT_URL '/accounts/profile/'
LOGIN_URL '/accounts/signin/'
LOGOUT_REDIRECT_URL None
LOG_LEVEL 'INFO'
MANAGERS (('Joe', 'joe@eracks.com'), ('Info', 'info@eracks.com'))
MEDIA_ROOT '/home/joe/eracks12/web/media'
MEDIA_URL '/media/'
MESSAGE_STORAGE 'django.contrib.messages.storage.fallback.FallbackStorage'
MIDDLEWARE ['django.middleware.cache.UpdateCacheMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.cache.FetchFromCacheMiddleware', 'debug_toolbar.middleware.DebugToolbarMiddleware', 'django.contrib.redirects.middleware.RedirectFallbackMiddleware']
MIGRATING False
MIGRATION_MODULES {}
MONTH_DAY_FORMAT 'F j'
MYURL 'https://eracks.com'
NOCAPTCHA True
NUMBER_GROUPING 0
ORDER_EMAILS ['orders@eracks.com']
ORDER_FROM_EMAIL 'orders@eracks.com'
ORDER_TYPE 'Confirmed'
PASSWORD_HASHERS '********************'
PASSWORD_RESET_TIMEOUT_DAYS '********************'
POSTGRES_HOST 'postgres'
PREPEND_WWW False
QUICKPAGE_HEADING 2
RECAPTCHA_PRIVATE_KEY '********************'
RECAPTCHA_PUBLIC_KEY '********************'
REGULAR_EMAIL_BACKEND 'django.core.mail.backends.smtp.EmailBackend'
ROOT_URLCONF 'eracks.urls'
SECRET_KEY '********************'
SECURE_BROWSER_XSS_FILTER False
SECURE_CONTENT_TYPE_NOSNIFF False
SECURE_EMAIL_BACKEND 'secure_mail.backends.EncryptingSmtpEmailBackend'
SECURE_HSTS_INCLUDE_SUBDOMAINS False
SECURE_HSTS_PRELOAD False
SECURE_HSTS_SECONDS 0
SECURE_MAIL_GNUPG_ENCODING 'utf-8'
SECURE_MAIL_GNUPG_HOME '/home/joe/.gnupg'
SECURE_MAIL_SIGNING_KEY_DATA '********************'
SECURE_ORDER_EMAIL 'joe@eracks.com'
SECURE_PROXY_SSL_HEADER None
SECURE_REDIRECT_EXEMPT []
SECURE_SSL_HOST None
SECURE_SSL_REDIRECT False
SELENIUM_BROWSER 'chrome'
SELENIUM_CALLBACK_HOST 'web'
SELENIUM_HOST None
SERVER_EMAIL 'support@eracks.com'
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 'Lax'
SESSION_COOKIE_SECURE False
SESSION_ENGINE 'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE False
SESSION_FILE_PATH None
SESSION_SAVE_EVERY_REQUEST False
SESSION_SERIALIZER 'django.contrib.sessions.serializers.PickleSerializer'
SETTINGS_MODULE 'settings.prod'
SHORT_DATETIME_FORMAT 'm/d/Y P'
SHORT_DATE_FORMAT 'm/d/Y'
SIGNING_BACKEND 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS []
SITE_ID 1
SITE_NAME 'eRacks'
SITE_TO_VALIDATE 'client'
SLEEPTIME 0.1
STATICFILES_DIRS [('unify', '/home/joe/eracks12/unify')]
STATICFILES_FINDERS ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'compressor.finders.CompressorFinder']
STATICFILES_STORAGE 'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT '/home/joe/eracks12/web/static'
STATIC_URL '/static/'
TELEGRAM_BOT_TOKEN '********************'
TELEGRAM_CHAT_ID '116010224&te'
TEMPLATES [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/home/joe/eracks12/web/templates'], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'utils.context_processors.settings', 'utils.context_processors.models', 'quickpages.context_processors.quick_snippets', 'quickpages.context_processors.quick_snippet_tags', 'apps.home.context_processors.registration_forms', 'apps.home.context_processors.cart_variables', 'apps.home.context_processors.environment', 'apps.home.context_processors.google_analytics_tags', 'apps.home.context_processors.background_images', 'apps.home.context_processors.metacat_tags']}}]
TESTING False
TEST_NON_SERIALIZED_APPS []
TEST_RESULTS_DIR '/home/joe/eracks12/web/media/test_results'
TEST_RUNNER 'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR ','
TIME_FORMAT 'P'
TIME_INPUT_FORMATS ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE 'UTC'
TRACE ''
USERENA_ACTIVATION_REQUIRED False
USERENA_DEFAULT_PRIVACY 'closed'
USERENA_REDIRECT_ON_SIGNOUT '/'
USERENA_REGISTER_PROFILE False
USERENA_USE_MESSAGES True
USERENA_WITHOUT_USERNAMES True
USE_I18N True
USE_L10N True
USE_THOUSAND_SEPARATOR False
USE_TZ False
USE_X_FORWARDED_HOST False
USE_X_FORWARDED_PORT False
VALIDATE_HTML_URL 'http://validator:8888'
VALIDATOR_HOST None
WSGI_APPLICATION 'eracks.wsgi.application'
X_FRAME_OPTIONS 'SAMEORIGIN'
YEAR_MONTH_FORMAT 'F Y'

Headers

Request headers

Key Value
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding br,gzip
Accept-Language en-US,en;q=0.5
Connection close
Host eracks.com
If-Modified-Since Fri, 03 Apr 2020 20:59:57 BST
User-Agent CCBot/2.0 (https://commoncrawl.org/faq/)
X-Forwarded-For 34.204.198.244
X-Forwarded-Protocol ssl
X-Real-Ip 34.204.198.244

Response headers

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

WSGI environ

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

Key Value
PATH_INFO /products/laptops/HUMBOLDT/
QUERY_STRING
REMOTE_ADDR 172.18.0.2
REQUEST_METHOD GET
SCRIPT_NAME
SERVER_NAME 0.0.0.0
SERVER_PORT 8000
SERVER_PROTOCOL HTTP/1.0
SERVER_SOFTWARE gunicorn/20.0.4

Request

View information

View function Arguments Keyword arguments URL name
apps.products.views.product () {'category': 'laptops', 'sku': 'HUMBOLDT'} None

No cookies

Session data

Variable Value
'prod' {'baseoptions': '', 'baseprice': 1695.0, 'blurb': '<p>The&nbsp;eRacks/HUMBOLDT&nbsp;custom gaming laptop is unmatched ' 'with its powerful Intel Core i5 / i7 processor, and up to 32GB of ' 'DDR4 memory, nothing will slow you down. Whether you are dominating ' 'the field in your favorite game, or creating your next work of art, ' 'The eRacks/ HUMBOLDT&nbsp;will have everything you need to get the ' 'job done.&nbsp;</p>\r\n' '\r\n' '<p>&nbsp;</p>', 'category_id': 18787, 'comments': 'Scraped from Zope as of 2012-04-26\r\n' '\r\n' 'Scraped from Zope as of 2012-05-01\r\n' '\r\n' 'Scraped from Zope as of 2012-05-04\r\n' '\r\n' 'Scraped from Zope as of 2012-05-04\r\n' '\r\n' 'Scraped from Zope as of 2012-05-05\r\n' '\r\n' 'Scraped from Zope as of 2012-05-19\r\n' '\r\n' 'Scraped from Zope as of 2012-05-19', 'cost': 979.0, 'created': datetime.datetime(2016, 6, 17, 23, 24, 16, 427266), 'description': '<p><!-- now content page goes in this cell--><!-- Begin ' 'eRacks/GAMER desc--><img alt="" ' 'src="/media/images/products/humboldt/humboldt_open_medium.jpeg" ' 'style="float:right; height:289px; width:300px" ' '/>The&nbsp;eRacks/HUMBOLDT&nbsp;custom gaming laptop is ' 'unmatched with its powerful Intel Core i5 / i7 processor, and ' 'up to 32GB of DDR4 memory, nothing will slow you down. ' 'Whether you are dominating the field in your favorite game, ' 'or creating your next work of art, The eRacks/ ' 'HUMBOLDT&nbsp;will have everything you need to get the job ' 'done.</p>\r\n' '\r\n' '<p>The new eRacks/ HUMBOLDT is the ultimate gaming machine ' 'and creative mobile studio with the latest high-performance ' 'technologies, so you can do more with it. With a quad-core ' 'Intel&reg; Core&trade; i7 processor, NVIDIA&reg; GeForce&reg; ' 'GTX 950M graphics, up to 32GB of RAM, Intel Wireless-AC WiFi, ' 'Bluetooth, and dual storage (SSD+HDD or dual SSDs), the new ' 'eRacks/HUMBOLDT delivers serious performance that can take on ' 'the most intensive applications with ease.</p>\r\n' '\r\n' '<p>The backlit keyboard delivers illumination bright enough ' 'to make typing and gaming easy and fun in low-light ' 'environments, and even in the dark.</p>\r\n' '\r\n' '<p><iframe align="right" frameborder="0" height="315" ' 'longdesc="eRacks/HUMBOLDT high-end gamer laptop video" ' 'name="eRacks/HUMBOLDT Video" scrolling="no" ' 'src="https://www.youtube.com/embed/7eOSmfWxMAI" ' 'title="eRacks/HUMBOLDT high-end gamer laptop video" ' 'width="560"></iframe></p>\r\n' '\r\n' '<p>The nVidia GeForce GTX 950M delivers great gaming ' 'performance at 1080p with inspired GameWorks technologies for ' 'fluid, life-like visuals. With GeForce Experience for quick ' 'gaming optimization, and BatteryBoost for improved battery ' 'life you can game longer, unplugged.</p>\r\n' '\r\n' '<p>Note that the 17.3&quot; Humboldt chassis can be built ' 'with a variety of even higher-end add-ons, such as nVidia ' 'GTX-960/965/970/980 Graphics up to 8GB, up to a 4k/UHD ' 'display, up to 4 SSDs internally (2 2.5&quot; + 2 M.2), an ' 'i7-6700K Extreme CPU, Color-illuminated keyboard ' 'backlighting, Killer Double-Shot Pro Networking, and ' 'more.</p>\r\n' '\r\n' '<p>We can install Steam on request, and will even instrall ' 'SteamOS (Steam&#39;s LInux Distro) via custom consulting, ' 'just tell us your needs and your project -</p>\r\n' '\r\n' '<p>Contact us today to have us quote you a custom build, or ' 'simply put your requests in the &quot;Notes&quot; field, ' 'enter your email, and click &quot;Get a quote&quot;!</p>\r\n' '\r\n' '<p>&nbsp;</p>', 'features': '<p><img alt="" ' 'src="/media/images/products/humbold/nvidiea950.jpg" ' 'style="float:right; height:156px; width:230px" /></p>\r\n' '\r\n' '<table>\r\n' '\t<tbody>\r\n' '\t\t<tr>\r\n' '\t\t\t<th>Processor</th>\r\n' '\t\t\t<td>\r\n' '\t\t\t<p>6th Generation Intel&reg; Core&trade; i5-6300HQ ' 'Processor (2.30GHz), 6MB L3 Cache<br />\r\n' '\t\t\t6th Generation Intel&reg; Core&trade; i7-6700HQ Processor ' '(2.60GHz), 6MB L3 Cache</p>\r\n' '\t\t\t</td>\r\n' '\t\t</tr>\r\n' '\t\t<tr>\r\n' '\t\t\t<th>Core Logic</th>\r\n' '\t\t\t<td>\r\n' '\t\t\t<p>Intel&reg; HM170 Express Chipset</p>\r\n' '\t\t\t</td>\r\n' '\t\t</tr>\r\n' '\t\t<tr>\r\n' '\t\t\t<th>Memory</th>\r\n' '\t\t\t<td>\r\n' '\t\t\t<p>Supports Dual Channel DDR4, Expandable up to 32GB, ' 'depends on 8GB/16GB SODIMM module<br />\r\n' '\t\t\tTwo&nbsp;260Pin SODIMM sockets, support for DDR4 2133MHz ' '(Real operation frequency depends on processor)</p>\r\n' '\t\t\t</td>\r\n' '\t\t</tr>\r\n' '\t\t<tr>\r\n' '\t\t\t<th>Display</th>\r\n' '\t\t\t<td>\r\n' '\t\t\t<p>17.3&rdquo; Full HD (1920x1080) Matte Display</p>\r\n' '\t\t\t</td>\r\n' '\t\t</tr>\r\n' '\t\t<tr>\r\n' '\t\t\t<th>Graphics<br />\r\n' '\t\t\tProcessor</th>\r\n' '\t\t\t<td>Switchable GPU by NVIDIA&reg; Optimus&trade; ' 'Technology -NVIDIA&reg; GeForce&trade; GTX 950M GPU / Intel&reg; ' 'HD Graphics\r\n' '\t\t\t<p>NVIDIA&reg; GeForce&trade; GTX 950M GPU with 2GB ' 'GDDR5<br />\r\n' '\t\t\t- Supports PCIe x8, Battery Boost 2.0 Ready<br />\r\n' '\t\t\t- NVIDIA&reg; PhysX&reg; Technology, NVIDIA&reg; ' 'CUDA&trade; Technology</p>\r\n' '\r\n' '\t\t\t<p>Intel&reg; HD 530 Graphics (Integrated on 6th Gen Intel ' 'Core processor)<br />\r\n' '\t\t\t- Dynamic frequency<br />\r\n' '\t\t\t- Intel Dynamic Video Memory Technology supporting shared ' 'memory up to 1.7GB<br />\r\n' '\t\t\t- Intel&reg; Quick Sync Video, Intel&reg; Clear Video HD ' 'Technology</p>\r\n' '\t\t\t</td>\r\n' '\t\t</tr>\r\n' '\t\t<tr>\r\n' '\t\t\t<th>Storage</th>\r\n' '\t\t\t<td>\r\n' '\t\t\t<p>One changeable 2.5&rdquo; 9.5mm HDD/SSD, SATA ' 'interface<br />\r\n' '\t\t\t(Factory option) One changeable 12.7mm Super Multi ODD / ' 'Caddy Bay for 2.5&quot; 9.5mm HDD, SATA Interface<br />\r\n' '\t\t\t(Factory Option) One M.2 2280 SSD, SATA or PCIe Gen3 x4 ' 'interface</p>\r\n' '\t\t\t</td>\r\n' '\t\t</tr>\r\n' '\t\t<tr>\r\n' '\t\t\t<th>Audio System</th>\r\n' '\t\t\t<td>\r\n' '\t\t\t<p>High Definition audio interface - 1 Built-in ' 'Microphone, 2 Built-in Speakers<br />\r\n' '\t\t\tSound Blaster&trade; Cinema 2, Amplified Headphone ' 'output</p>\r\n' '\t\t\t</td>\r\n' '\t\t</tr>\r\n' '\t\t<tr>\r\n' '\t\t\t<th>Pointing Device</th>\r\n' '\t\t\t<td>\r\n' '\t\t\t<p>Integrated touchpad with multi-gesture and scrolling ' 'function</p>\r\n' '\t\t\t</td>\r\n' '\t\t</tr>\r\n' '\t\t<tr>\r\n' '\t\t\t<th>Keyboard</th>\r\n' '\t\t\t<td>\r\n' '\t\t\t<p>Full sized white-LED illuminated keyboard with numeric ' 'pad</p>\r\n' '\t\t\t</td>\r\n' '\t\t</tr>\r\n' '\t\t<tr>\r\n' '\t\t\t<th>I/O Ports</th>\r\n' '\t\t\t<td>\r\n' '\t\t\t<p>1 HDMI 1.4b output Port (with HDCP), 1 External VGA ' 'output Port<br />\r\n' '\t\t\t3 USB 3.0 (USB 3.1 Gen 1) Ports, 1 USB 2.0 Port<br />\r\n' '\t\t\t1 Headphone Jack, 1 Microphone Jack<br />\r\n' '\t\t\t1 RJ-45 LAN (10/100/1000Mbps)</p>\r\n' '\t\t\t</td>\r\n' '\t\t</tr>\r\n' '\t\t<tr>\r\n' '\t\t\t<th>Slots</th>\r\n' '\t\t\t<td>\r\n' '\t\t\t<p>9-in-1 Card Reader ' '(MMC/RSMMC/SD/Mini-SD/SDHC/SDXC/MS/MS Pro/MS Duo)<br />\r\n' '\t\t\tTwo MiniCard Slots<br />\r\n' '\t\t\t- 1st for WLAN Combo M.2 2230 Card with PCIe and USB ' 'interface<br />\r\n' '\t\t\t- 2nd for SSD M.2 2280 Card with SATA / PCIe Gen3 x4 ' 'interface</p>\r\n' '\t\t\t</td>\r\n' '\t\t</tr>\r\n' '\t\t<tr>\r\n' '\t\t\t<th>Communication</th>\r\n' '\t\t\t<td>\r\n' '\t\t\t<p>Built-in Gigabit Ethernet LAN<br />\r\n' '\t\t\tIntel&reg; Dual Band Wireless-AC + Bluetooth, M.2 ' 'interface</p>\r\n' '\t\t\t</td>\r\n' '\t\t</tr>\r\n' '\t\t<tr>\r\n' '\t\t\t<th>Security</th>\r\n' '\t\t\t<td>\r\n' '\t\t\t<p>Kensington&reg; Lock</p>\r\n' '\t\t\t</td>\r\n' '\t\t</tr>\r\n' '\t\t<tr>\r\n' '\t\t\t<th>Power System</th>\r\n' '\t\t\t<td>\r\n' '\t\t\t<p>Removable 6 cell smart Lithium-Ion battery pack ' '62.16Wh<br />\r\n' '\t\t\tFull Range AC-in 100~240V, 50~60Hz, 120W AC Adapter, DC ' 'output 19.5V, 6.15A</p>\r\n' '\t\t\t</td>\r\n' '\t\t</tr>\r\n' '\t\t<tr>\r\n' '\t\t\t<th>Physical Characteristic</th>\r\n' '\t\t\t<td>\r\n' '\t\t\t<p>6.83 LBs with ODD and Battery Pack<br />\r\n' '\t\t\t16.26&quot; (w) x 10.74&quot; (d) x 1.43&quot; (h)</p>\r\n' '\t\t\t</td>\r\n' '\t\t</tr>\r\n' '\t\t<tr>\r\n' '\t\t\t<th>Other Features</th>\r\n' '\t\t\t<td>\r\n' '\t\t\t<p>Built-in 2.0M FHD Video Camera</p>\r\n' '\t\t\t</td>\r\n' '\t\t</tr>\r\n' '\t</tbody>\r\n' '</table>', 'id': 58685, 'image': <FileObject: images/products/humbold/1443055774_np5672_8_l.jpg>, 'link': '', 'meta_description': 'The eRacks/HUMBOLDT custom gaming laptop is unmatched ' 'with its powerful Intel Core i5 / i7 processor, and up ' 'to 32GB of DDR4 memory, nothing will slow you down. ' 'Whether you are dominating the field in your favorite ' 'game, or creating your next work of art, The eRacks/ ' 'HUMBOLDT will have everything you need to get the job ' 'done.', 'meta_keywords': 'laptop, SSD, Dual-SSD, notebook, Linux, Ubuntu, Mint, Arch ' 'Linux, Antergos, KaOS, dual-boot, 17.3, FHD, FullHD, ' 'Dual-graphics, nVidia, eRacks, M.2, 1920x1080, 4k, UHD, ' 'GTX980, GTX970, Steam', 'meta_title': 'eRacks/HUMBOLDT 17.3" higher-end gaming laptop', 'name': 'eRacks/HUMBOLDT', 'notes': '', 'opts': OrderedDict([('58687_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbecfbe8e0>, 'allowed_quantities': '', 'choices': {58696: {'blurb': '6.83 pound 17.3 inch ' 'Gaming laptop. 6th ' 'Generation Intel Core ' 'i7-6700HQ Processor ' '(2.60GHz), 6MB L3 Cache, ' 'NVIDIA GeForce GTX 950M ' 'GPU with 2GB GDDR3 with ' 'One M.2 2280 SSD, SATA ' 'or PCIe Gen3 x4 ' 'interface', 'choicecategory_id': 55076, 'comment': 'Available at Amazon, ' 'Best Buy - JJW', 'cost': 979.0, 'created': datetime.datetime(2016, 6, 18, 1, 10, 55, 351590), 'id': 58696, 'multiplier': 0, 'name': 'HUMBOLDT 17.3" 1920x1080 ', 'price': None, 'published': True, 'sortorder': 101, 'source': '', 'updated': datetime.datetime(2016, 6, 19, 20, 3, 5, 24125)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 6, 17, 23, 24, 16, 479942), 'defaultchoice_id': 58696, 'id': 58687, 'name': 'Base System', 'option_id': 18849, 'product_id': 58685, 'published': True, 'qty': 1, 'required': True, 'single': True, 'updated': datetime.datetime(2016, 7, 27, 20, 15, 17, 442754)}), ('58792_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbecfbef10>, 'allowed_quantities': '', 'choices': {58800: {'blurb': '6th Generation Intel ' 'Core i5-6300HQ Processor ' '(2.30GHz), 6MB L3 ' 'Cache\r\n', 'choicecategory_id': 57087, 'comment': 'oriinally fm Sager ' 'Humboldt - \r\n' '6th Generation Intel ' 'Core i5-6300HQ ' 'Processor (2.30GHz), ' '6MB L3 Cache\r\n', 'cost': 355.0, 'created': datetime.datetime(2016, 8, 4, 19, 27, 34, 181787), 'id': 58800, 'multiplier': 1, 'name': 'Intel Core i5 2.3GHz CPU', 'price': None, 'published': True, 'sortorder': 0, 'source': '', 'updated': datetime.datetime(2016, 8, 4, 21, 43, 55, 178531)}, 58801: {'blurb': '6th Generation Intel ' 'Core i7-6700HQ Processor ' '(2.60GHz), 6MB L3 ' 'Cache\r\n', 'choicecategory_id': 57087, 'comment': 'originally fm Sager ' 'Humboldt - \r\n' '6th Generation Intel ' 'Core i5-6300HQ ' 'Processor (2.30GHz), ' '6MB L3 Cache\r\n' '6th Generation Intel ' 'Core i7-6700HQ ' 'Processor (2.60GHz), ' '6MB L3 Cache\r\n' '\r\n' 'prices based on ' 'gshopping', 'cost': 530.0, 'created': datetime.datetime(2016, 8, 4, 19, 31, 29, 574098), 'id': 58801, 'multiplier': 1, 'name': 'Intel Core i7 2.6GHz CPU', 'price': None, 'published': True, 'sortorder': 0, 'source': '', 'updated': datetime.datetime(2016, 8, 4, 21, 43, 55, 218746)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 8, 1, 17, 55, 4, 54989), 'defaultchoice_id': 58800, 'id': 58792, 'name': 'Mobile CPU', 'option_id': 58780, 'product_id': 58685, 'published': True, 'qty': 1, 'required': True, 'single': False, 'updated': datetime.datetime(2016, 8, 4, 19, 43, 33, 234562)}), ('58802_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbeda1b1f0>, 'allowed_quantities': '', 'choices': {56609: {'blurb': 'Motherboard & overall ' 'config determines speed ' 'options - if you have a ' 'requirement, indicate it ' 'in the Notes field', 'choicecategory_id': 56608, 'comment': 'speed depends on mobo, ' 'configuration, & total ' 'capacity', 'cost': 35.0, 'created': datetime.datetime(2015, 2, 17, 20, 49, 37, 259563), 'id': 56609, 'multiplier': 0, 'name': '4GB DDR4 Memory', 'price': 0.0, 'published': True, 'sortorder': 1303, 'source': '', 'updated': datetime.datetime(2020, 3, 19, 4, 33, 38, 700044)}, 56610: {'blurb': 'Motherboard & overall ' 'config determines speed ' 'options - if you have a ' 'requirement, indicate it ' 'in the Notes field', 'choicecategory_id': 56608, 'comment': 'speed depends on mobo, ' 'configuration, & total ' 'capacity', 'cost': 50.0, 'created': datetime.datetime(2015, 2, 17, 20, 49, 37, 278917), 'id': 56610, 'multiplier': 0, 'name': '8GB DDR4 Memory', 'price': 0.0, 'published': True, 'sortorder': 1303, 'source': '', 'updated': datetime.datetime(2020, 3, 19, 4, 33, 38, 777199)}, 56611: {'blurb': 'Motherboard & overall ' 'config determines speed ' 'options - if you have a ' 'requirement, indicate it ' 'in the Notes field', 'choicecategory_id': 56608, 'comment': 'speed depends on mobo, ' 'configuration, & total ' 'capacity', 'cost': 90.0, 'created': datetime.datetime(2015, 2, 17, 20, 49, 37, 295642), 'id': 56611, 'multiplier': 0, 'name': '16GB DDR4 Memory', 'price': 0.0, 'published': True, 'sortorder': 1303, 'source': '', 'updated': datetime.datetime(2020, 3, 19, 4, 33, 38, 801334)}, 56612: {'blurb': 'Motherboard & overall ' 'config determines speed ' 'options - if you have a ' 'requirement, indicate it ' 'in the Notes field', 'choicecategory_id': 56608, 'comment': 'speed depends on mobo, ' 'configuration, & total ' 'capacity', 'cost': 180.0, 'created': datetime.datetime(2015, 2, 17, 20, 49, 37, 312277), 'id': 56612, 'multiplier': 0, 'name': '32GB DDR4 Memory', 'price': 0.0, 'published': True, 'sortorder': 1303, 'source': '', 'updated': datetime.datetime(2020, 3, 19, 4, 33, 38, 858473)}, 59824: {'blurb': 'Motherboard & overall ' 'config determines speed ' 'options - if you have a ' 'requirement, indicate it ' 'in the Notes field', 'choicecategory_id': 56608, 'comment': 'speed depends on mobo, ' 'configuration, & total ' 'capacity', 'cost': 320.0, 'created': datetime.datetime(2020, 3, 19, 4, 28, 7, 907339), 'id': 59824, 'multiplier': 0, 'name': '64GB DDR4 Memory', 'price': 0.0, 'published': True, 'sortorder': 1303, 'source': '', 'updated': datetime.datetime(2020, 3, 19, 4, 33, 38, 833314)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 8, 4, 19, 36, 10, 86385), 'defaultchoice_id': 56610, 'id': 58802, 'name': 'Memory DDR4', 'option_id': 58793, 'product_id': 58685, 'published': True, 'qty': 1, 'required': True, 'single': False, 'updated': datetime.datetime(2016, 8, 4, 19, 43, 33, 264645)}), ('58695_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbeda1bcd0>, 'allowed_quantities': '', 'choices': {4663: {'blurb': '', 'choicecategory_id': 43894, 'comment': None, 'cost': 27.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 4663, 'multiplier': None, 'name': 'Slimline CD ROM', 'price': None, 'published': True, 'sortorder': 400, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 1, 182063)}, 19247: {'blurb': '', 'choicecategory_id': 43895, 'comment': '', 'cost': 38.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 19247, 'multiplier': None, 'name': 'Slim DVD / CDRW', 'price': None, 'published': True, 'sortorder': 410, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 2, 575827)}, 34644: {'blurb': '', 'choicecategory_id': 43895, 'comment': '', 'cost': 46.0, 'created': datetime.datetime(2007, 4, 9, 0, 0), 'id': 34644, 'multiplier': None, 'name': 'Slim DVDRW', 'price': None, 'published': True, 'sortorder': 410, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 2, 692319)}, 44729: {'blurb': '', 'choicecategory_id': 43895, 'comment': 'Sony ' 'OptoarcBD-5730S-1\r\n' 'Lowered 120->90 ' '2/18/15 JJW\r\n' 'Lots of new ones on ' 'google shopping', 'cost': 90.0, 'created': datetime.datetime(2010, 3, 6, 0, 0), 'id': 44729, 'multiplier': None, 'name': 'Slim BluRay Disc (BD) ' 'Burner', 'price': None, 'published': True, 'sortorder': 410, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 2, 805601)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 6, 17, 23, 24, 16, 539379), 'defaultchoice_id': 4663, 'id': 58695, 'name': 'Slim Optical Drive Bay', 'option_id': 4318, 'product_id': 58685, 'published': True, 'qty': 1, 'required': True, 'single': False, 'updated': datetime.datetime(2016, 6, 18, 1, 23, 38, 594815)}), ('58807_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbeda1bca0>, 'allowed_quantities': '', 'choices': {51758: {'blurb': '', 'choicecategory_id': 43917, 'comment': 'ZENBOOK series', 'cost': 200.0, 'created': datetime.datetime(2012, 2, 7, 17, 53, 14, 275894), 'id': 51758, 'multiplier': None, 'name': '250GB-class Solid State ' 'Storage / SSD', 'price': None, 'published': True, 'sortorder': 610, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 9, 565722)}, 54476: {'blurb': '', 'choicecategory_id': 43918, 'comment': 'Sager np9370/NP6370 ' 'upgrade hd', 'cost': 100.0, 'created': datetime.datetime(2012, 10, 8, 14, 29, 2, 851886), 'id': 54476, 'multiplier': None, 'name': 'Laptop 750GB SATA', 'price': None, 'published': True, 'sortorder': 83, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 24, 298115)}, 54667: {'blurb': '', 'choicecategory_id': 43918, 'comment': 'Sager np9370/NP6370 ' 'upgrade hd', 'cost': 130.0, 'created': datetime.datetime(2012, 10, 15, 21, 0, 14, 126812), 'id': 54667, 'multiplier': None, 'name': 'Laptop 1 TB SATA', 'price': None, 'published': True, 'sortorder': 86, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 25, 103097)}, 54668: {'blurb': '', 'choicecategory_id': 43918, 'comment': 'Sager np9370/NP6370 ' 'optional 2nd hd', 'cost': 65.0, 'created': datetime.datetime(2012, 10, 15, 21, 6, 3, 632897), 'id': 54668, 'multiplier': None, 'name': 'Laptop 500GB SATA', 'price': None, 'published': True, 'sortorder': 83, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 24, 181207)}, 55116: {'blurb': '', 'choicecategory_id': 43917, 'comment': 'LGRAM notebook series', 'cost': 360.0, 'created': datetime.datetime(2013, 10, 22, 22, 36, 21, 932121), 'id': 55116, 'multiplier': 0, 'name': '512GB-class Solid State ' 'Storage / SSD', 'price': None, 'published': True, 'sortorder': 611, 'source': '', 'updated': datetime.datetime(2016, 5, 24, 5, 21, 6, 424860)}, 55392: {'blurb': '1TB SSD, such as Samsumg ' '840 evo', 'choicecategory_id': 43886, 'comment': 'eg Samsumg 840 evo - ' '$509 as of 3/11/14 JJW', 'cost': 510.0, 'created': datetime.datetime(2014, 3, 11, 12, 46, 52, 352927), 'id': 55392, 'multiplier': None, 'name': 'Laptop 1TB-class SSD', 'price': None, 'published': True, 'sortorder': 692, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 13, 200067)}, 55393: {'blurb': 'Hybrid SSD / SATA HD, ' 'such as WD Black or ' 'Seagate Momentus', 'choicecategory_id': 43886, 'comment': 'eg WD Black hybrid ' 'SSD/HD or equiv - ' 'Seagate has one too, ' 'Momentus? JJW 3/11/14', 'cost': 220.0, 'created': datetime.datetime(2014, 3, 11, 12, 49, 33, 495690), 'id': 55393, 'multiplier': None, 'name': 'Laptop 1TB Hybrid ' 'SSD/SATA HD', 'price': None, 'published': True, 'sortorder': 94, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 27, 181224)}, 55400: {'blurb': '', 'choicecategory_id': 43917, 'comment': 'ZENBOOK series', 'cost': 100.0, 'created': datetime.datetime(2014, 3, 20, 16, 37, 50, 236822), 'id': 55400, 'multiplier': None, 'name': '120GB-class Solid State ' 'Storage / SSD', 'price': None, 'published': True, 'sortorder': 609, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 9, 126488)}, 57723: {'blurb': '', 'choicecategory_id': 43917, 'comment': '12/18/15 JJW\r\n' '\r\n' '850 & 550 pro - \r\n' '850: 5yr warraty\r\n' 'Pro: 10yr\r\n', 'cost': 380.0, 'created': datetime.datetime(2015, 12, 18, 22, 54, 33, 725049), 'id': 57723, 'multiplier': 0, 'name': '1TB Samsung 850 SSD', 'price': None, 'published': True, 'sortorder': 4915, 'source': 'Lots', 'updated': datetime.datetime(2015, 12, 18, 22, 57, 58, 13052)}, 57724: {'blurb': '', 'choicecategory_id': 43917, 'comment': '12/18/15 JJW\r\n' '\r\n' '850 & 550 pro -\r\n' '850: 5yr warraty\r\n' 'Pro: 10yr\r\n', 'cost': 730.0, 'created': datetime.datetime(2015, 12, 18, 22, 56, 25, 749152), 'id': 57724, 'multiplier': 0, 'name': '2TB Samsung 850 SSD', 'price': None, 'published': True, 'sortorder': 4916, 'source': 'Lots', 'updated': datetime.datetime(2015, 12, 18, 22, 57, 58, 66925)}, 58366: {'blurb': '', 'choicecategory_id': 43917, 'comment': 'Price is taken from ' 'google shopping, ' '~1933-2600', 'cost': 1980.0, 'created': datetime.datetime(2016, 4, 29, 21, 4, 28, 479508), 'id': 58366, 'multiplier': 0, 'name': '3.84TB Samsung SSD SATA ' 'Drive', 'price': None, 'published': True, 'sortorder': 4920, 'source': '', 'updated': datetime.datetime(2016, 4, 30, 14, 38, 49, 411054)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 8, 5, 12, 16, 1, 702119), 'defaultchoice_id': 54667, 'id': 58807, 'name': 'Internal 2.5" Drive Bay', 'option_id': 55119, 'product_id': 58685, 'published': True, 'qty': 1, 'required': True, 'single': False, 'updated': datetime.datetime(2016, 8, 5, 12, 29, 54, 437608)}), ('58803_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbeda1bd30>, 'allowed_quantities': '', 'choices': {30: {'blurb': '', 'choicecategory_id': 43882, 'comment': None, 'cost': 0.0, 'created': datetime.datetime(2001, 1, 10, 16, 56, 5), 'id': 30, 'multiplier': None, 'name': 'none', 'price': 0.0, 'published': True, 'sortorder': 0, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 14, 496668)}, 58585: {'blurb': '', 'choicecategory_id': 43918, 'comment': 'Samsung 250GB 850 Evo ' 'M.2 SSD\r\n' '\r\n' 'Price is taken from ' 'http://www.bhphotovideo.com/bnh/controller/home?O=&sku=1123189&gclid=Cj0KEQjwvZq6BRC9kfq2zKfQ_94BEiQAOeUVC57D8tCWCvb8WLXpR-k0KRiqNQr9zbC11batAFqVt6waAmQf8P8HAQ&Q=&ap=y&c3api=1876%2C89827194362%2C&is=REG&A=details ' 'on May 26, 2016', 'cost': 98.0, 'created': datetime.datetime(2016, 5, 26, 10, 50, 14, 512235), 'id': 58585, 'multiplier': 0, 'name': 'Laptop 256GB M2/mSATA ' 'class SSD', 'price': None, 'published': True, 'sortorder': 90, 'source': '', 'updated': datetime.datetime(2016, 5, 26, 11, 9, 32, 101945)}, 58586: {'blurb': '', 'choicecategory_id': 43918, 'comment': 'Samsung 500GB 850 Evo ' 'M.2 SSD\r\n' '\r\n' 'Price is taken ' 'fromhttp://www.bhphotovideo.com/bnh/controller/home?O=&sku=1123190&gclid=Cj0KEQjwvZq6BRC9kfq2zKfQ_94BEiQAOeUVCxxt897G6o8TqukhpKlA3mTrIJTReiiEYI3iidxEkw0aAmJ98P8HAQ&is=REG&ap=y&c3api=1876%2C89827194362%2C&Q=&A=details ' 'on May 26, 2016', 'cost': 175.0, 'created': datetime.datetime(2016, 5, 26, 10, 54, 51, 920810), 'id': 58586, 'multiplier': 0, 'name': 'Laptop 512GB M2/mSATA ' 'class SSD', 'price': None, 'published': True, 'sortorder': 90, 'source': '', 'updated': datetime.datetime(2016, 5, 26, 11, 7, 53, 31733)}, 58587: {'blurb': '', 'choicecategory_id': 43918, 'comment': 'Samsung 850 EVO 1 TB ' 'Internal SSD - mSATA - ' 'MZ-M5E1T0BW - SATA ' '6Gb/s\r\n' '\r\n' 'Price is taken from ' 'http://www.bhphotovideo.com/bnh/controller/home?O=&sku=1123187&gclid=Cj0KEQjwvZq6BRC9kfq2zKfQ_94BEiQAOeUVC7_uwO41Dl550t_YE0_DyyixqLBgSWWTKNzSDCGh3wEaAj2I8P8HAQ&is=REG&ap=y&m=Y&c3api=1876%2C89827194362%2C&A=details&Q= ' 'on May 26, 2016', 'cost': 319.0, 'created': datetime.datetime(2016, 5, 26, 11, 6, 6, 3303), 'id': 58587, 'multiplier': 0, 'name': 'Laptop 1TB M2/mSATA class ' 'SSD', 'price': None, 'published': True, 'sortorder': 90, 'source': '', 'updated': datetime.datetime(2016, 5, 26, 11, 15, 18, 779189)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 8, 4, 19, 37, 18, 519470), 'defaultchoice_id': 30, 'id': 58803, 'name': 'Internal M.2 Drive Bay', 'option_id': 58584, 'product_id': 58685, 'published': True, 'qty': 1, 'required': False, 'single': False, 'updated': datetime.datetime(2016, 8, 5, 12, 35, 3, 827354)}), ('58786_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbeda1ba60>, 'allowed_quantities': '', 'choices': {24: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 10, 16, 45, 40), 'id': 24, 'multiplier': 0, 'name': 'Arch Linux', 'price': 0.0, 'published': False, 'sortorder': 910, 'source': '', 'updated': datetime.datetime(2016, 9, 17, 18, 51, 49, 810720)}, 30: {'blurb': '', 'choicecategory_id': 43882, 'comment': None, 'cost': 0.0, 'created': datetime.datetime(2001, 1, 10, 16, 56, 5), 'id': 30, 'multiplier': None, 'name': 'none', 'price': 0.0, 'published': True, 'sortorder': 0, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 14, 496668)}, 4470: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 4470, 'multiplier': 1, 'name': 'OpenSUSE', 'price': 0.0, 'published': True, 'sortorder': 1511, 'source': '', 'updated': datetime.datetime(2019, 4, 24, 22, 1, 26, 777812)}, 8259: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 8, 26, 0, 0), 'id': 8259, 'multiplier': 1, 'name': 'NetBSD', 'price': 0.0, 'published': True, 'sortorder': 631, 'source': '', 'updated': datetime.datetime(2019, 4, 24, 22, 1, 26, 561838)}, 8260: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 8260, 'multiplier': 1, 'name': 'OpenBSD', 'price': None, 'published': True, 'sortorder': 641, 'source': '', 'updated': datetime.datetime(2019, 4, 24, 22, 1, 26, 645735)}, 8261: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 8, 26, 0, 0), 'id': 8261, 'multiplier': 1, 'name': 'FreeBSD legacy', 'price': 0.0, 'published': True, 'sortorder': 621, 'source': '', 'updated': datetime.datetime(2019, 4, 24, 22, 1, 26, 434510)}, 9190: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 9190, 'multiplier': 1, 'name': 'FreeBSD production', 'price': 0.0, 'published': True, 'sortorder': 622, 'source': '', 'updated': datetime.datetime(2019, 4, 24, 22, 1, 26, 507928)}, 12160: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 12160, 'multiplier': 1, 'name': 'Debian Linux - testing', 'price': None, 'published': True, 'sortorder': 402, 'source': '', 'updated': datetime.datetime(2019, 4, 24, 22, 1, 26, 343234)}, 12161: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 12161, 'multiplier': 1, 'name': 'Debian Linux - stable', 'price': None, 'published': True, 'sortorder': 403, 'source': '', 'updated': datetime.datetime(2018, 2, 12, 15, 7, 56, 272282)}, 13079: {'blurb': '', 'choicecategory_id': 43898, 'comment': '$50 additional cost - ' 'for MS netbooks, ' 'laptops, desktops', 'cost': 35.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 13079, 'multiplier': 0, 'name': 'Dual Boot operating ' 'systems (specify in ' 'NOTES)', 'price': None, 'published': True, 'sortorder': 411, 'source': '', 'updated': datetime.datetime(2020, 2, 12, 6, 22, 8, 191886)}, 16588: {'blurb': '', 'choicecategory_id': 43882, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 16588, 'multiplier': None, 'name': 'Other (enter details in ' '"Notes" field.)', 'price': None, 'published': True, 'sortorder': 4200, 'source': '', 'updated': datetime.datetime(2015, 11, 27, 15, 48, 10, 42090)}, 31147: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 31147, 'multiplier': 1, 'name': 'Customer-provided custom ' 'Linux OS + software', 'price': None, 'published': True, 'sortorder': 1, 'source': '', 'updated': datetime.datetime(2018, 1, 10, 14, 42, 27, 429672)}, 31809: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2006, 1, 24, 20, 0, 17), 'id': 31809, 'multiplier': 1, 'name': 'Debian Linux - ' 'development', 'price': None, 'published': True, 'sortorder': 401, 'source': '', 'updated': datetime.datetime(2019, 4, 24, 22, 1, 26, 113761)}, 32432: {'blurb': '', 'choicecategory_id': 43898, 'comment': '10 Oct 2019,\r\nAsif.', 'cost': 16.0, 'created': datetime.datetime(2006, 1, 24, 20, 0, 17), 'id': 32432, 'multiplier': 0, 'name': 'Freespire Linux 5.0 (1 ' 'Copy)', 'price': None, 'published': True, 'sortorder': 661, 'source': '', 'updated': datetime.datetime(2019, 11, 10, 18, 15, 44, 848088)}, 35522: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2007, 8, 30, 0, 0), 'id': 35522, 'multiplier': 0, 'name': 'Ubuntu Linux 19.04 ' 'Desktop Edition', 'price': None, 'published': True, 'sortorder': 2104, 'source': '', 'updated': datetime.datetime(2019, 4, 24, 22, 1, 26, 921925)}, 35523: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2007, 8, 30, 0, 0), 'id': 35523, 'multiplier': 0, 'name': 'Ubuntu Linux 18.04 LTS ' 'Desktop Edition', 'price': None, 'published': True, 'sortorder': 2102, 'source': '', 'updated': datetime.datetime(2018, 4, 29, 7, 49, 19, 983081)}, 36898: {'blurb': '', 'choicecategory_id': 43912, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2008, 1, 18, 0, 0), 'id': 36898, 'multiplier': None, 'name': 'Ubuntu Studio 20.04 LTS', 'price': None, 'published': True, 'sortorder': 4010, 'source': '', 'updated': datetime.datetime(2020, 5, 3, 0, 59, 13, 896370)}, 38353: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2008, 5, 5, 0, 0), 'id': 38353, 'multiplier': 0, 'name': 'PCLinuxOS', 'price': None, 'published': True, 'sortorder': 1601, 'source': '', 'updated': datetime.datetime(2018, 1, 10, 15, 22, 54, 663202)}, 41887: {'blurb': '', 'choicecategory_id': 43898, 'comment': 'JJW July 3, 2020', 'cost': 0.0, 'created': datetime.datetime(2009, 3, 17, 14, 41, 17, 900605), 'id': 41887, 'multiplier': 0, 'name': 'Linux Mint 20 latest ' '"Ulyana"', 'price': None, 'published': True, 'sortorder': 1221, 'source': '', 'updated': datetime.datetime(2020, 7, 3, 20, 52, 19, 790543)}, 56893: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2015, 6, 22, 14, 32, 10, 286481), 'id': 56893, 'multiplier': 1, 'name': 'PC-BSD', 'price': None, 'published': True, 'sortorder': 651, 'source': '', 'updated': datetime.datetime(2019, 4, 24, 22, 1, 26, 737128)}, 56963: {'blurb': '', 'choicecategory_id': 43912, 'comment': 'Added 15.04 7/18/15 ' 'JJW', 'cost': 0.0, 'created': datetime.datetime(2015, 7, 18, 16, 51, 57, 760927), 'id': 56963, 'multiplier': None, 'name': 'Ubuntu Studio 19.10', 'price': None, 'published': True, 'sortorder': 4010, 'source': '', 'updated': datetime.datetime(2020, 5, 3, 0, 59, 13, 874874)}, 58975: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2016, 10, 14, 13, 43, 3, 529273), 'id': 58975, 'multiplier': 0, 'name': 'TrueOS Desktop', 'price': None, 'published': True, 'sortorder': 2002, 'source': '', 'updated': datetime.datetime(2018, 1, 10, 14, 55, 54, 98510)}, 58976: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2016, 10, 14, 13, 45, 2, 154268), 'id': 58976, 'multiplier': 0, 'name': 'TrueOS Server', 'price': None, 'published': True, 'sortorder': 2001, 'source': '', 'updated': datetime.datetime(2018, 1, 10, 14, 55, 14, 194436)}, 59189: {'blurb': '', 'choicecategory_id': 43898, 'comment': '03 May 2019, Asif.\r\n' 'Jul 3 2020 JJW', 'cost': 0.0, 'created': datetime.datetime(2018, 1, 10, 13, 26, 9, 613766), 'id': 59189, 'multiplier': 1, 'name': 'Fedora Linux 32 Server ' 'Edition', 'price': None, 'published': True, 'sortorder': 595, 'source': '', 'updated': datetime.datetime(2020, 7, 3, 20, 47, 58, 497619)}, 59193: {'blurb': '', 'choicecategory_id': 43898, 'comment': '29 APR 2019,\r\nAsif', 'cost': 0.0, 'created': datetime.datetime(2018, 1, 10, 13, 40, 31, 908781), 'id': 59193, 'multiplier': 0, 'name': 'Fedora Linux 29 Server ' 'Edition', 'price': None, 'published': False, 'sortorder': 598, 'source': '', 'updated': datetime.datetime(2019, 4, 29, 11, 54, 22, 304175)}, 59487: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2018, 4, 29, 9, 28, 49, 272316), 'id': 59487, 'multiplier': 0, 'name': 'Ubuntu Linux 20.04 LTS ' 'Desktop Edition', 'price': None, 'published': True, 'sortorder': 2108, 'source': '', 'updated': datetime.datetime(2020, 5, 3, 0, 59, 13, 858258)}, 59493: {'blurb': '', 'choicecategory_id': 43898, 'comment': '03 May 2019, Asif.\r\n' 'Jul 3 2020 JJW', 'cost': 0.0, 'created': datetime.datetime(2018, 6, 23, 10, 5, 12, 687437), 'id': 59493, 'multiplier': 1, 'name': 'Fedora Linux 32 ' 'Workstation Edition', 'price': None, 'published': True, 'sortorder': 596, 'source': '', 'updated': datetime.datetime(2020, 7, 3, 20, 47, 58, 550093)}, 59495: {'blurb': '', 'choicecategory_id': 43898, 'comment': '29 APR 2019,\r\nAsif', 'cost': 0.0, 'created': datetime.datetime(2018, 6, 23, 10, 6, 52, 4463), 'id': 59495, 'multiplier': 0, 'name': 'Fedora Linux 29 ' 'Workstation Edition', 'price': None, 'published': False, 'sortorder': 599, 'source': '', 'updated': datetime.datetime(2019, 4, 29, 11, 54, 5, 904645)}, 59496: {'blurb': '', 'choicecategory_id': 43898, 'comment': '29 APR 2019,\r\nAsif', 'cost': 0.0, 'created': datetime.datetime(2018, 6, 23, 10, 7, 19, 535706), 'id': 59496, 'multiplier': 0, 'name': 'Fedora Linux 29 Atomic ' 'Edition', 'price': None, 'published': False, 'sortorder': 600, 'source': '', 'updated': datetime.datetime(2019, 4, 29, 11, 53, 47, 34730)}, 59717: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2019, 11, 10, 17, 3, 32, 382968), 'id': 59717, 'multiplier': 0, 'name': 'Ubuntu Linux 19.10 ' 'Desktop Edition', 'price': None, 'published': True, 'sortorder': 2106, 'source': '', 'updated': datetime.datetime(2019, 11, 10, 17, 3, 32, 382990)}, 59718: {'blurb': '', 'choicecategory_id': 43898, 'comment': '10 Oct. 2019,\r\nAsif.', 'cost': 0.0, 'created': datetime.datetime(2019, 11, 10, 17, 52, 38, 996607), 'id': 59718, 'multiplier': 1, 'name': 'Fedora Linux 31 Server ' 'Edition', 'price': None, 'published': True, 'sortorder': 592, 'source': '', 'updated': datetime.datetime(2019, 11, 10, 17, 52, 38, 996630)}, 59719: {'blurb': '', 'choicecategory_id': 43898, 'comment': '10 Oct. 2019,\r\nAsif.', 'cost': 0.0, 'created': datetime.datetime(2019, 11, 10, 17, 52, 49, 960822), 'id': 59719, 'multiplier': 1, 'name': 'Fedora Linux 31 ' 'Workstation Edition', 'price': None, 'published': True, 'sortorder': 593, 'source': '', 'updated': datetime.datetime(2019, 11, 10, 17, 52, 49, 960844)}, 59722: {'blurb': '', 'choicecategory_id': 43898, 'comment': '10 Oct 2019,\r\nAsif.', 'cost': 16.0, 'created': datetime.datetime(2019, 11, 10, 17, 59, 45, 876380), 'id': 59722, 'multiplier': 0, 'name': 'Freespire Linux 4.0 (1 ' 'Copy)', 'price': None, 'published': True, 'sortorder': 662, 'source': '', 'updated': datetime.datetime(2019, 11, 10, 18, 15, 26, 162692)}, 59723: {'blurb': '', 'choicecategory_id': 43898, 'comment': '10 Oct 2019,\r\nAsif.', 'cost': 16.0, 'created': datetime.datetime(2019, 11, 10, 18, 0, 2, 558399), 'id': 59723, 'multiplier': 0, 'name': 'Freespire Linux 3.0 (1 ' 'Copy)', 'price': None, 'published': True, 'sortorder': 663, 'source': '', 'updated': datetime.datetime(2019, 11, 10, 18, 15, 4, 840706)}, 59724: {'blurb': '', 'choicecategory_id': 43898, 'comment': '10 Oct 2019,\r\nAsif.', 'cost': 0.0, 'created': datetime.datetime(2019, 11, 10, 18, 2, 17, 934562), 'id': 59724, 'multiplier': 0, 'name': 'Linux Mint 19 latest', 'price': None, 'published': True, 'sortorder': 1220, 'source': '', 'updated': datetime.datetime(2020, 2, 12, 6, 22, 8, 283115)}, 59725: {'blurb': '', 'choicecategory_id': 43898, 'comment': '10 Oct 2019,\r\nAsif.', 'cost': 0.0, 'created': datetime.datetime(2019, 11, 10, 18, 2, 40, 375152), 'id': 59725, 'multiplier': 0, 'name': 'Linux Mint 19.3 "Tricia"', 'price': None, 'published': True, 'sortorder': 1219, 'source': '', 'updated': datetime.datetime(2020, 7, 3, 20, 45, 14, 795217)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 8, 1, 17, 55, 4, 9852), 'defaultchoice_id': 35523, 'id': 58786, 'name': 'Operating System', 'option_id': 55078, 'product_id': 58685, 'published': True, 'qty': 1, 'required': False, 'single': False, 'updated': datetime.datetime(2016, 8, 1, 18, 14, 17, 453080)}), ('58788_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbeda1b220>, 'allowed_quantities': '', 'choices': {9880: {'blurb': '', 'choicecategory_id': 43914, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 9880, 'multiplier': None, 'name': 'GNOME', 'price': None, 'published': True, 'sortorder': 4100, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 26, 554701)}, 12817: {'blurb': '', 'choicecategory_id': 43882, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 12817, 'multiplier': None, 'name': 'default', 'price': 0.0, 'published': True, 'sortorder': 0, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 15, 86387)}, 13498: {'blurb': '', 'choicecategory_id': 43914, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 13498, 'multiplier': None, 'name': 'WindowMaker', 'price': None, 'published': True, 'sortorder': 4100, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 26, 364746)}, 13499: {'blurb': '', 'choicecategory_id': 43914, 'comment': 'Best', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 13499, 'multiplier': None, 'name': 'Xfce (Ubuntustudio ' 'default)', 'price': None, 'published': True, 'sortorder': 4102, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 27, 8664)}, 14673: {'blurb': '', 'choicecategory_id': 43914, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 14673, 'multiplier': None, 'name': 'KDE ', 'price': None, 'published': True, 'sortorder': 4105, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 27, 257823)}, 55096: {'blurb': '', 'choicecategory_id': 43914, 'comment': 'Yuk', 'cost': 0.0, 'created': datetime.datetime(2013, 10, 20, 11, 44, 24, 583884), 'id': 55096, 'multiplier': None, 'name': 'GNOME 3', 'price': None, 'published': True, 'sortorder': 4104, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 27, 145352)}, 55097: {'blurb': '', 'choicecategory_id': 43914, 'comment': 'The name changes are ' 'lame', 'cost': 0.0, 'created': datetime.datetime(2013, 10, 20, 11, 46, 17, 495165), 'id': 55097, 'multiplier': None, 'name': 'MATE / GNOME 2.x', 'price': None, 'published': True, 'sortorder': 4103, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 27, 92362)}, 55098: {'blurb': '', 'choicecategory_id': 43914, 'comment': 'Yuk', 'cost': 0.0, 'created': datetime.datetime(2013, 10, 20, 11, 47, 19, 351039), 'id': 55098, 'multiplier': None, 'name': 'Unity (Ubuntu Default)', 'price': None, 'published': True, 'sortorder': 4101, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 26, 910387)}, 55099: {'blurb': '', 'choicecategory_id': 43914, 'comment': 'Nice, minimal', 'cost': 0.0, 'created': datetime.datetime(2013, 10, 20, 11, 47, 55, 260158), 'id': 55099, 'multiplier': None, 'name': 'LXDE', 'price': None, 'published': True, 'sortorder': 4109, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 27, 316775)}, 55100: {'blurb': '', 'choicecategory_id': 43914, 'comment': 'Tiled!', 'cost': 0.0, 'created': datetime.datetime(2013, 10, 20, 11, 48, 35, 873273), 'id': 55100, 'multiplier': None, 'name': 'XMonad', 'price': None, 'published': True, 'sortorder': 4110, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 27, 382631)}, 55101: {'blurb': '', 'choicecategory_id': 43914, 'comment': 'Nice - still early ' 'though, needs Gnome ' '2.x compatibility', 'cost': 0.0, 'created': datetime.datetime(2013, 10, 20, 11, 51, 0, 175818), 'id': 55101, 'multiplier': None, 'name': 'Cinnamon (Mint default)', 'price': None, 'published': True, 'sortorder': 4100, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 25, 872206)}, 57122: {'blurb': 'Gnome Flashback is a ' 'Gnome-3-based "Shell" ' 'that looks like Gnome 2 ' 'for the most part, and ' 'still uses Metacity ' 'rather than 3D ' 'acceleration. \r\n' '\r\n' 'Provides gnome-applets, ' 'gnome-panel, and ' 'gnome-metacity atop the ' 'GNOME 3 stack. Some ' 'prefer it over MATE, ' "it's a de-facto " 'admission that the GNOME ' 'project screwed up ' 'royally with GNOME 3.\r\n' '\r\n' 'Has Bluetooth and Power ' 'applets, support for ' 'custom menu directories, ' 'input source switching, ' 'support for setting the ' 'sound applet to more ' 'than 100% volume, ' 'screenshot taking ' 'support now works, ' 'etc. \r\n' '\r\n' 'Still an unofficial ' 'project.', 'choicecategory_id': 43914, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2015, 10, 3, 19, 15, 34, 302863), 'id': 57122, 'multiplier': None, 'name': 'Gnome Flashback', 'price': None, 'published': True, 'sortorder': 4101, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 26, 959787)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 8, 1, 17, 55, 4, 40551), 'defaultchoice_id': 55101, 'id': 58788, 'name': 'Desktop Software', 'option_id': 9876, 'product_id': 58685, 'published': True, 'qty': 1, 'required': True, 'single': False, 'updated': datetime.datetime(2016, 8, 1, 18, 14, 17, 469597)}), ('58790_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbeda1b5b0>, 'allowed_quantities': '', 'choices': {30: {'blurb': '', 'choicecategory_id': 43882, 'comment': None, 'cost': 0.0, 'created': datetime.datetime(2001, 1, 10, 16, 56, 5), 'id': 30, 'multiplier': None, 'name': 'none', 'price': 0.0, 'published': True, 'sortorder': 0, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 14, 496668)}, 38327: {'blurb': '', 'choicecategory_id': 57112, 'comment': 'Microsoft. Grrr.', 'cost': 0.0, 'created': datetime.datetime(2008, 4, 11, 0, 0), 'id': 38327, 'multiplier': None, 'name': 'Skype', 'price': None, 'published': True, 'sortorder': 4100, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 25, 973280)}, 57109: {'blurb': '', 'choicecategory_id': 43913, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2015, 10, 3, 11, 3, 43, 781923), 'id': 57109, 'multiplier': None, 'name': 'Docker', 'price': None, 'published': True, 'sortorder': 4051, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 25, 540640)}, 57114: {'blurb': 'Standalone Zimbra ' 'Desktop Client', 'choicecategory_id': 57113, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2015, 10, 3, 18, 11, 59, 201576), 'id': 57114, 'multiplier': None, 'name': 'Zimbra Desktop', 'price': None, 'published': True, 'sortorder': 4100, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 26, 15038)}, 57115: {'blurb': 'Oracle Virtual Box is ' 'not bundled with all ' "distros - we'll install " 'it for you on request.', 'choicecategory_id': 57112, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2015, 10, 3, 18, 15, 35, 755076), 'id': 57115, 'multiplier': None, 'name': 'VirtualBox', 'price': None, 'published': True, 'sortorder': 4100, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 26, 96506)}, 57116: {'blurb': 'Google Drive GUI client ' '- Includes Grive2 ' '(command-line client) ' 'PPA installation\r\n', 'choicecategory_id': 57112, 'comment': '', 'cost': 5.0, 'created': datetime.datetime(2015, 10, 3, 18, 21, 20, 54109), 'id': 57116, 'multiplier': None, 'name': 'OverGrive', 'price': None, 'published': True, 'sortorder': 4100, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 26, 879434)}, 57117: {'blurb': 'Fluendo OnePlay products ' 'include DVD Plays, Codec ' 'Pack, and a movie player ' 'for AVI, H265, H264, and ' 'MPEG4, Windows Media, ' 'and more. Put what you ' 'want in to the "Notes" ' "field and we'll install " 'it and charge you ' 'accordingly.', 'choicecategory_id': 57112, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2015, 10, 3, 18, 46, 27, 623301), 'id': 57117, 'multiplier': None, 'name': 'Fluendo OnePlay products ' '(details in Notes field)', 'price': None, 'published': True, 'sortorder': 4100, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 26, 143716)}, 57118: {'blurb': 'Full Google Chrome ' 'browser preinstalled - ' 'PPA also preinstalled - ' 'indicate Stable or Dev ' 'in "Notes" field', 'choicecategory_id': 57112, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2015, 10, 3, 18, 48, 55, 139841), 'id': 57118, 'multiplier': None, 'name': 'Chrome', 'price': None, 'published': True, 'sortorder': 4100, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 26, 273501)}, 57119: {'blurb': 'Dropbox preinstalled, ' 'PPA also preinstalled', 'choicecategory_id': 57112, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2015, 10, 3, 18, 49, 40, 924229), 'id': 57119, 'multiplier': None, 'name': 'Dropbox', 'price': None, 'published': True, 'sortorder': 4100, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 26, 195773)}, 58794: {'blurb': 'Steam package - ' 'typically a .deb, ' 'although there are ' 'others', 'choicecategory_id': 57106, 'comment': 'Steam package - ' 'typically a .deb, ' 'although there are ' 'others', 'cost': 0.0, 'created': datetime.datetime(2016, 8, 1, 18, 9, 39, 415716), 'id': 58794, 'multiplier': 0, 'name': 'Steam', 'price': 0.0, 'published': True, 'sortorder': 0, 'source': '', 'updated': datetime.datetime(2016, 8, 1, 18, 9, 39, 415733)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 8, 1, 17, 55, 4, 47998), 'defaultchoice_id': 58794, 'id': 58790, 'name': 'Add-on Software', 'option_id': 57111, 'product_id': 58685, 'published': True, 'qty': 1, 'required': False, 'single': False, 'updated': datetime.datetime(2016, 8, 5, 12, 40, 38, 899626)}), ('58693_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbeda1bbb0>, 'allowed_quantities': '', 'choices': {30: {'blurb': '', 'choicecategory_id': 43882, 'comment': None, 'cost': 0.0, 'created': datetime.datetime(2001, 1, 10, 16, 56, 5), 'id': 30, 'multiplier': None, 'name': 'none', 'price': 0.0, 'published': True, 'sortorder': 0, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 14, 496668)}, 18994: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 60.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 18994, 'multiplier': None, 'name': 'Laptop Extra 9 cell ' 'Li-Ion Battery ' '14.8V/4800mAH', 'price': None, 'published': True, 'sortorder': 80, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 22, 842377)}, 18995: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 18.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 18995, 'multiplier': None, 'name': 'Laptop Extra AC Adapter', 'price': None, 'published': True, 'sortorder': 80, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 22, 604846)}, 21968: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 90.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 21968, 'multiplier': None, 'name': 'ZaurusSL5600 Extra ' 'Lithium Ion Battery', 'price': None, 'published': True, 'sortorder': 85, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 24, 804753)}, 21969: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 45.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 21969, 'multiplier': None, 'name': 'Zaurus Extra Docking ' 'Station', 'price': None, 'published': True, 'sortorder': 85, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 24, 691447)}, 21970: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 27.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 21970, 'multiplier': None, 'name': 'ZaurusSL5600 Extra AC ' 'Adaptor', 'price': None, 'published': True, 'sortorder': 85, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 24, 559248)}, 22542: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 70.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 22542, 'multiplier': None, 'name': 'Notebook Extra 9 cell ' 'Li-Ion Battery', 'price': None, 'published': True, 'sortorder': 80, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 22, 984940)}, 22544: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 20.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 22544, 'multiplier': None, 'name': 'Notebook Extra AC Adapter', 'price': None, 'published': True, 'sortorder': 80, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 22, 661687)}, 22550: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 49.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 22550, 'multiplier': None, 'name': 'External USB 1.44MB ' 'Floppy Drive', 'price': None, 'published': True, 'sortorder': 80, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 22, 804159)}, 22552: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 150.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 22552, 'multiplier': None, 'name': 'External USB 8X DVD-ROM ' 'Drive', 'price': None, 'published': True, 'sortorder': 80, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 23, 329349)}, 22554: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 230.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 22554, 'multiplier': None, 'name': 'External USB 8x10x24 ' 'DVD/CD-RW Drive', 'price': None, 'published': True, 'sortorder': 80, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 23, 383062)}, 24740: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 80.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 24740, 'multiplier': None, 'name': 'External USB 24x CD-ROM ' 'Drive', 'price': None, 'published': True, 'sortorder': 80, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 23, 283910)}, 27685: {'blurb': '', 'choicecategory_id': 43901, 'comment': None, 'cost': 250.0, 'created': datetime.datetime(2004, 7, 6, 0, 0), 'id': 27685, 'multiplier': None, 'name': '8 sets of 10 foot KVM ' 'cables', 'price': None, 'published': True, 'sortorder': 1010, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 40, 14458)}, 27686: {'blurb': '', 'choicecategory_id': 43901, 'comment': None, 'cost': 200.0, 'created': datetime.datetime(2004, 7, 6, 0, 0), 'id': 27686, 'multiplier': None, 'name': '8 sets of 6 foot KVM ' 'cables', 'price': None, 'published': True, 'sortorder': 1010, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 39, 971549)}, 28446: {'blurb': '', 'choicecategory_id': 43902, 'comment': None, 'cost': 177.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 28446, 'multiplier': None, 'name': 'Rack Door, solid, black, ' '77in high', 'price': None, 'published': True, 'sortorder': 1122, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 48, 572063)}, 28447: {'blurb': '', 'choicecategory_id': 43902, 'comment': None, 'cost': 121.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 28447, 'multiplier': None, 'name': 'Rack Door, solid, black, ' '42in high', 'price': None, 'published': True, 'sortorder': 1121, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 48, 525655)}, 28448: {'blurb': '', 'choicecategory_id': 43902, 'comment': None, 'cost': 201.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 28448, 'multiplier': None, 'name': 'Rack Door, louvred, ' 'black, 77in high', 'price': None, 'published': True, 'sortorder': 1125, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 48, 903510)}, 28449: {'blurb': '', 'choicecategory_id': 43902, 'comment': None, 'cost': 133.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 28449, 'multiplier': None, 'name': 'Rack Door, louvred, ' 'black, 42in high', 'price': None, 'published': True, 'sortorder': 1124, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 48, 764294)}, 28450: {'blurb': '', 'choicecategory_id': 43902, 'comment': None, 'cost': 341.8, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 28450, 'multiplier': None, 'name': 'Rack Door, plexi, black, ' '77in high', 'price': None, 'published': True, 'sortorder': 1128, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 49, 245294)}, 28451: {'blurb': '', 'choicecategory_id': 43902, 'comment': None, 'cost': 238.47, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 28451, 'multiplier': None, 'name': 'Rack Door, plexi, black, ' '42in high', 'price': None, 'published': True, 'sortorder': 1127, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 49, 158844)}, 28475: {'blurb': '', 'choicecategory_id': 43902, 'comment': None, 'cost': 102.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 28475, 'multiplier': None, 'name': 'Rack Door, solid, black, ' '35in high', 'price': None, 'published': True, 'sortorder': 1120, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 48, 327831)}, 28476: {'blurb': '', 'choicecategory_id': 43902, 'comment': None, 'cost': 116.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 28476, 'multiplier': None, 'name': 'Rack Door, louvred, ' 'black, 35in high', 'price': None, 'published': True, 'sortorder': 1123, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 48, 651997)}, 28477: {'blurb': '', 'choicecategory_id': 43902, 'comment': None, 'cost': 226.55, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 28477, 'multiplier': None, 'name': 'Rack Door, plexi, black, ' '35in high', 'price': None, 'published': True, 'sortorder': 1126, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 49, 12985)}, 31178: {'blurb': '', 'choicecategory_id': 43892, 'comment': 'sharkacomputers online ' 'price=$87: Zahlman ' 'ZM400B-APS ', 'cost': 90.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 31178, 'multiplier': None, 'name': 'Ultra Quiet 400W PS ' 'Single Fan w/SATA ' 'connectors', 'price': None, 'published': True, 'sortorder': 191, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 41, 646543)}, 31191: {'blurb': '', 'choicecategory_id': 43892, 'comment': None, 'cost': 70.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 31191, 'multiplier': None, 'name': 'Ultra Quiet 400W PS ' 'Single Fan standard ' 'connectors', 'price': None, 'published': True, 'sortorder': 191, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 41, 540628)}, 37203: {'blurb': '', 'choicecategory_id': 43895, 'comment': None, 'cost': 55.0, 'created': datetime.datetime(2008, 3, 1, 0, 0), 'id': 37203, 'multiplier': None, 'name': 'Tapes - set of two, LTO2 ' '200/400GB', 'price': None, 'published': True, 'sortorder': 430, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 5, 756885)}, 37204: {'blurb': '', 'choicecategory_id': 43895, 'comment': None, 'cost': 75.0, 'created': datetime.datetime(2008, 3, 1, 0, 0), 'id': 37204, 'multiplier': None, 'name': 'Tapes - set of two, LTO3 ' '400/800GB', 'price': None, 'published': True, 'sortorder': 430, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 5, 875760)}, 38802: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$100 cost', 'cost': 90.0, 'created': datetime.datetime(2008, 6, 5, 0, 0), 'id': 38802, 'multiplier': None, 'name': 'Extra Laptop Battery', 'price': None, 'published': True, 'sortorder': 51, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 17, 866125)}, 38803: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$30 cost', 'cost': 27.0, 'created': datetime.datetime(2008, 6, 5, 0, 0), 'id': 38803, 'multiplier': None, 'name': 'Extra Laptop AC Adapter', 'price': None, 'published': True, 'sortorder': 51, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 17, 506638)}, 38804: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$75 cost', 'cost': 67.0, 'created': datetime.datetime(2008, 6, 5, 0, 0), 'id': 38804, 'multiplier': None, 'name': 'Laptop Car Adapter', 'price': None, 'published': True, 'sortorder': 51, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 17, 833279)}, 38805: {'blurb': '', 'choicecategory_id': 43886, 'comment': '4.95$ cost (price is ' 'taken ' 'https://www.google.com/search?safe=off&hl=en&output=search&tbm=shop&q=64+GB+USB+3+drive&oq=64+GB+USB+3+drive&gs_l=products-cc.3...1889.16689.0.17736.17.13.0.4.4.0.203.2105.0j11j1.12.0....0...1ac.1.64.products-cc..1.10.1085...0.-uhvsjNPh2U#safe=off&hl=en&tbm=shop&q=4+GB+USB+2+drive ' 'on 24th May 2016. ' 'product is SanDisk ' 'Cruzer Blade 4 GB ' 'Flash Drive - USB ' '2.0. ', 'cost': 4.95, 'created': datetime.datetime(2008, 6, 5, 0, 0), 'id': 38805, 'multiplier': 0, 'name': '4 GB USB 2.0 Drive', 'price': None, 'published': True, 'sortorder': 52, 'source': '', 'updated': datetime.datetime(2016, 5, 24, 3, 9, 42, 591356)}, 38806: {'blurb': '', 'choicecategory_id': 43886, 'comment': '7$ cost (price is ' 'taken from ' 'https://www.google.com/search?safe=off&hl=en&output=search&tbm=shop&q=64+GB+USB+3+drive&oq=64+GB+USB+3+drive&gs_l=products-cc.3...1889.16689.0.17736.17.13.0.4.4.0.203.2105.0j11j1.12.0....0...1ac.1.64.products-cc..1.10.1085...0.-uhvsjNPh2U#safe=off&hl=en&tbm=shop&q=8+GB+USB+2+drive ' 'on May 24, 2016. ' 'Product is SanDisk ' 'Cruzer Switch 8 GB ' 'Flash Drive - USB 2.0.', 'cost': 7.0, 'created': datetime.datetime(2008, 6, 5, 0, 0), 'id': 38806, 'multiplier': 0, 'name': '8 GB USB 2.0 Drive', 'price': None, 'published': True, 'sortorder': 52, 'source': '', 'updated': datetime.datetime(2016, 5, 24, 3, 8, 44, 307341)}, 38807: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$11 cost', 'cost': 7.0, 'created': datetime.datetime(2008, 6, 5, 0, 0), 'id': 38807, 'multiplier': None, 'name': 'Belkin Security Lock ', 'price': None, 'published': True, 'sortorder': 53, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 18, 603532)}, 38808: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$28 cost', 'cost': 24.0, 'created': datetime.datetime(2008, 6, 5, 0, 0), 'id': 38808, 'multiplier': None, 'name': 'Antec Cooler for laptops, ' 'USB cable 30in, 5V, 2W', 'price': None, 'published': True, 'sortorder': 53, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 18, 639656)}, 47138: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$9.28 cost. Price is ' 'taken from ' 'https://www.google.com/search?safe=off&hl=en&output=search&tbm=shop&q=64+GB+USB+3+drive&oq=64+GB+USB+3+drive&gs_l=products-cc.3...1889.16689.0.17736.17.13.0.4.4.0.203.2105.0j11j1.12.0....0...1ac.1.64.products-cc..1.10.1085...0.-uhvsjNPh2U#safe=off&hl=en&tbm=shop&q=16+GB+USB+2+drive ' 'on May 24, 2016. ' 'Product is SanDisk ' 'Cruzer 16 GB Flash ' 'Drive - USB 2.0.', 'cost': 9.28, 'created': datetime.datetime(2010, 9, 10, 17, 29, 19, 337144), 'id': 47138, 'multiplier': 0, 'name': '16 GB USB 2.0 Drive', 'price': None, 'published': True, 'sortorder': 52, 'source': '', 'updated': datetime.datetime(2016, 5, 24, 3, 16, 54, 451101)}, 47151: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$12.70 cost. Price is ' 'taken from ' 'https://www.google.com/search?safe=off&hl=en&output=search&tbm=shop&q=64+GB+USB+3+drive&oq=64+GB+USB+3+drive&gs_l=products-cc.3...1889.16689.0.17736.17.13.0.4.4.0.203.2105.0j11j1.12.0....0...1ac.1.64.products-cc..1.10.1085...0.-uhvsjNPh2U#safe=off&hl=en&tbm=shop&q=32+GB+USB+2+drive ' 'on 24th May 2016. ' 'Product is SanDisk ' 'Cruzer Switch 32 GB ' 'Flash Drive - USB ' '2.0. ', 'cost': 13.0, 'created': datetime.datetime(2010, 9, 10, 17, 33, 36, 570696), 'id': 47151, 'multiplier': 0, 'name': '32 GB USB 2.0 Drive', 'price': None, 'published': True, 'sortorder': 52, 'source': '', 'updated': datetime.datetime(2016, 5, 24, 3, 12, 4, 838309)}, 58559: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$16.95 cost. Price is ' 'taken from ' 'https://www.google.com/search?safe=off&hl=en&output=search&tbm=shop&q=64+GB+USB+3+drive&oq=64+GB+USB+3+drive&gs_l=products-cc.3...1889.16689.0.17736.17.13.0.4.4.0.203.2105.0j11j1.12.0....0...1ac.1.64.products-cc..1.10.1085...0.-uhvsjNPh2U# ' 'on 24th May 2016. ' 'Product is SanDisk ' 'Ultra Dual 64 GB Flash ' 'Drive - USB 3.0. ', 'cost': 17.0, 'created': datetime.datetime(2016, 5, 24, 3, 18, 50, 832607), 'id': 58559, 'multiplier': 0, 'name': '64 GB USB 3.0 Drive', 'price': None, 'published': True, 'sortorder': 52, 'source': '', 'updated': datetime.datetime(2016, 5, 24, 3, 18, 50, 832623)}, 58560: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$16.95 cost. Price is ' 'taken from ' 'https://www.google.com/search?safe=off&hl=en&output=search&tbm=shop&q=64+GB+USB+3+drive&oq=64+GB+USB+3+drive&gs_l=products-cc.3...1889.16689.0.17736.17.13.0.4.4.0.203.2105.0j11j1.12.0....0...1ac.1.64.products-cc..1.10.1085...0.-uhvsjNPh2U#safe=off&hl=en&tbm=shop&q=128+GB+USB+3+drive ' 'on 24th May 2016. ' 'Product is SanDisk ' 'Ultra Dual 128 GB ' 'Flash Drive - USB ' '3.0/micro USB.', 'cost': 39.0, 'created': datetime.datetime(2016, 5, 24, 3, 20, 36, 854984), 'id': 58560, 'multiplier': 0, 'name': '128 GB USB 3.0 Drive', 'price': None, 'published': True, 'sortorder': 52, 'source': '', 'updated': datetime.datetime(2016, 5, 24, 3, 20, 36, 855000)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 6, 17, 23, 24, 16, 531915), 'defaultchoice_id': 30, 'id': 58693, 'name': 'Extras', 'option_id': 18991, 'product_id': 58685, 'published': True, 'qty': 1, 'required': False, 'single': False, 'updated': datetime.datetime(2016, 6, 18, 1, 24, 12, 948544)}), ('58689_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbeda1bac0>, 'allowed_quantities': '', 'choices': {30: {'blurb': '', 'choicecategory_id': 43882, 'comment': None, 'cost': 0.0, 'created': datetime.datetime(2001, 1, 10, 16, 56, 5), 'id': 30, 'multiplier': None, 'name': 'none', 'price': 0.0, 'published': True, 'sortorder': 0, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 14, 496668)}, 18994: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 60.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 18994, 'multiplier': None, 'name': 'Laptop Extra 9 cell ' 'Li-Ion Battery ' '14.8V/4800mAH', 'price': None, 'published': True, 'sortorder': 80, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 22, 842377)}, 18995: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 18.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 18995, 'multiplier': None, 'name': 'Laptop Extra AC Adapter', 'price': None, 'published': True, 'sortorder': 80, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 22, 604846)}, 22542: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 70.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 22542, 'multiplier': None, 'name': 'Notebook Extra 9 cell ' 'Li-Ion Battery', 'price': None, 'published': True, 'sortorder': 80, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 22, 984940)}, 22544: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 20.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 22544, 'multiplier': None, 'name': 'Notebook Extra AC Adapter', 'price': None, 'published': True, 'sortorder': 80, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 22, 661687)}, 22550: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 49.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 22550, 'multiplier': None, 'name': 'External USB 1.44MB ' 'Floppy Drive', 'price': None, 'published': True, 'sortorder': 80, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 22, 804159)}, 22552: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 150.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 22552, 'multiplier': None, 'name': 'External USB 8X DVD-ROM ' 'Drive', 'price': None, 'published': True, 'sortorder': 80, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 23, 329349)}, 22554: {'blurb': '', 'choicecategory_id': 43889, 'comment': None, 'cost': 230.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 22554, 'multiplier': None, 'name': 'External USB 8x10x24 ' 'DVD/CD-RW Drive', 'price': None, 'published': True, 'sortorder': 80, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 23, 383062)}, 27696: {'blurb': '', 'choicecategory_id': 43901, 'comment': None, 'cost': 260.0, 'created': datetime.datetime(2004, 7, 8, 0, 0), 'id': 27696, 'multiplier': None, 'name': 'KVM switch, ' 'rackmountable (no ' 'monitor, keyboard)', 'price': None, 'published': True, 'sortorder': 1010, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 40, 58042)}, 28445: {'blurb': '', 'choicecategory_id': 43902, 'comment': None, 'cost': 177.1, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 28445, 'multiplier': None, 'name': 'Lockable Rail Mounted ' 'Storage Drawer 3.5x19x16', 'price': None, 'published': True, 'sortorder': 1150, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 51, 265272)}, 38802: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$100 cost', 'cost': 90.0, 'created': datetime.datetime(2008, 6, 5, 0, 0), 'id': 38802, 'multiplier': None, 'name': 'Extra Laptop Battery', 'price': None, 'published': True, 'sortorder': 51, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 17, 866125)}, 38803: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$30 cost', 'cost': 27.0, 'created': datetime.datetime(2008, 6, 5, 0, 0), 'id': 38803, 'multiplier': None, 'name': 'Extra Laptop AC Adapter', 'price': None, 'published': True, 'sortorder': 51, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 17, 506638)}, 38804: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$75 cost', 'cost': 67.0, 'created': datetime.datetime(2008, 6, 5, 0, 0), 'id': 38804, 'multiplier': None, 'name': 'Laptop Car Adapter', 'price': None, 'published': True, 'sortorder': 51, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 17, 833279)}, 38805: {'blurb': '', 'choicecategory_id': 43886, 'comment': '4.95$ cost (price is ' 'taken ' 'https://www.google.com/search?safe=off&hl=en&output=search&tbm=shop&q=64+GB+USB+3+drive&oq=64+GB+USB+3+drive&gs_l=products-cc.3...1889.16689.0.17736.17.13.0.4.4.0.203.2105.0j11j1.12.0....0...1ac.1.64.products-cc..1.10.1085...0.-uhvsjNPh2U#safe=off&hl=en&tbm=shop&q=4+GB+USB+2+drive ' 'on 24th May 2016. ' 'product is SanDisk ' 'Cruzer Blade 4 GB ' 'Flash Drive - USB ' '2.0. ', 'cost': 4.95, 'created': datetime.datetime(2008, 6, 5, 0, 0), 'id': 38805, 'multiplier': 0, 'name': '4 GB USB 2.0 Drive', 'price': None, 'published': True, 'sortorder': 52, 'source': '', 'updated': datetime.datetime(2016, 5, 24, 3, 9, 42, 591356)}, 38806: {'blurb': '', 'choicecategory_id': 43886, 'comment': '7$ cost (price is ' 'taken from ' 'https://www.google.com/search?safe=off&hl=en&output=search&tbm=shop&q=64+GB+USB+3+drive&oq=64+GB+USB+3+drive&gs_l=products-cc.3...1889.16689.0.17736.17.13.0.4.4.0.203.2105.0j11j1.12.0....0...1ac.1.64.products-cc..1.10.1085...0.-uhvsjNPh2U#safe=off&hl=en&tbm=shop&q=8+GB+USB+2+drive ' 'on May 24, 2016. ' 'Product is SanDisk ' 'Cruzer Switch 8 GB ' 'Flash Drive - USB 2.0.', 'cost': 7.0, 'created': datetime.datetime(2008, 6, 5, 0, 0), 'id': 38806, 'multiplier': 0, 'name': '8 GB USB 2.0 Drive', 'price': None, 'published': True, 'sortorder': 52, 'source': '', 'updated': datetime.datetime(2016, 5, 24, 3, 8, 44, 307341)}, 38807: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$11 cost', 'cost': 7.0, 'created': datetime.datetime(2008, 6, 5, 0, 0), 'id': 38807, 'multiplier': None, 'name': 'Belkin Security Lock ', 'price': None, 'published': True, 'sortorder': 53, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 18, 603532)}, 38808: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$28 cost', 'cost': 24.0, 'created': datetime.datetime(2008, 6, 5, 0, 0), 'id': 38808, 'multiplier': None, 'name': 'Antec Cooler for laptops, ' 'USB cable 30in, 5V, 2W', 'price': None, 'published': True, 'sortorder': 53, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 18, 639656)}, 47138: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$9.28 cost. Price is ' 'taken from ' 'https://www.google.com/search?safe=off&hl=en&output=search&tbm=shop&q=64+GB+USB+3+drive&oq=64+GB+USB+3+drive&gs_l=products-cc.3...1889.16689.0.17736.17.13.0.4.4.0.203.2105.0j11j1.12.0....0...1ac.1.64.products-cc..1.10.1085...0.-uhvsjNPh2U#safe=off&hl=en&tbm=shop&q=16+GB+USB+2+drive ' 'on May 24, 2016. ' 'Product is SanDisk ' 'Cruzer 16 GB Flash ' 'Drive - USB 2.0.', 'cost': 9.28, 'created': datetime.datetime(2010, 9, 10, 17, 29, 19, 337144), 'id': 47138, 'multiplier': 0, 'name': '16 GB USB 2.0 Drive', 'price': None, 'published': True, 'sortorder': 52, 'source': '', 'updated': datetime.datetime(2016, 5, 24, 3, 16, 54, 451101)}, 47151: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$12.70 cost. Price is ' 'taken from ' 'https://www.google.com/search?safe=off&hl=en&output=search&tbm=shop&q=64+GB+USB+3+drive&oq=64+GB+USB+3+drive&gs_l=products-cc.3...1889.16689.0.17736.17.13.0.4.4.0.203.2105.0j11j1.12.0....0...1ac.1.64.products-cc..1.10.1085...0.-uhvsjNPh2U#safe=off&hl=en&tbm=shop&q=32+GB+USB+2+drive ' 'on 24th May 2016. ' 'Product is SanDisk ' 'Cruzer Switch 32 GB ' 'Flash Drive - USB ' '2.0. ', 'cost': 13.0, 'created': datetime.datetime(2010, 9, 10, 17, 33, 36, 570696), 'id': 47151, 'multiplier': 0, 'name': '32 GB USB 2.0 Drive', 'price': None, 'published': True, 'sortorder': 52, 'source': '', 'updated': datetime.datetime(2016, 5, 24, 3, 12, 4, 838309)}, 58559: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$16.95 cost. Price is ' 'taken from ' 'https://www.google.com/search?safe=off&hl=en&output=search&tbm=shop&q=64+GB+USB+3+drive&oq=64+GB+USB+3+drive&gs_l=products-cc.3...1889.16689.0.17736.17.13.0.4.4.0.203.2105.0j11j1.12.0....0...1ac.1.64.products-cc..1.10.1085...0.-uhvsjNPh2U# ' 'on 24th May 2016. ' 'Product is SanDisk ' 'Ultra Dual 64 GB Flash ' 'Drive - USB 3.0. ', 'cost': 17.0, 'created': datetime.datetime(2016, 5, 24, 3, 18, 50, 832607), 'id': 58559, 'multiplier': 0, 'name': '64 GB USB 3.0 Drive', 'price': None, 'published': True, 'sortorder': 52, 'source': '', 'updated': datetime.datetime(2016, 5, 24, 3, 18, 50, 832623)}, 58560: {'blurb': '', 'choicecategory_id': 43886, 'comment': '$16.95 cost. Price is ' 'taken from ' 'https://www.google.com/search?safe=off&hl=en&output=search&tbm=shop&q=64+GB+USB+3+drive&oq=64+GB+USB+3+drive&gs_l=products-cc.3...1889.16689.0.17736.17.13.0.4.4.0.203.2105.0j11j1.12.0....0...1ac.1.64.products-cc..1.10.1085...0.-uhvsjNPh2U#safe=off&hl=en&tbm=shop&q=128+GB+USB+3+drive ' 'on 24th May 2016. ' 'Product is SanDisk ' 'Ultra Dual 128 GB ' 'Flash Drive - USB ' '3.0/micro USB.', 'cost': 39.0, 'created': datetime.datetime(2016, 5, 24, 3, 20, 36, 854984), 'id': 58560, 'multiplier': 0, 'name': '128 GB USB 3.0 Drive', 'price': None, 'published': True, 'sortorder': 52, 'source': '', 'updated': datetime.datetime(2016, 5, 24, 3, 20, 36, 855000)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 6, 17, 23, 24, 16, 486921), 'defaultchoice_id': 30, 'id': 58689, 'name': 'More Extras', 'option_id': 19011, 'product_id': 58685, 'published': True, 'qty': 1, 'required': False, 'single': False, 'updated': datetime.datetime(2016, 6, 18, 1, 24, 12, 986968)}), ('58694_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbeda1b940>, 'allowed_quantities': '', 'choices': {16588: {'blurb': '', 'choicecategory_id': 43882, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 16588, 'multiplier': None, 'name': 'Other (enter details in ' '"Notes" field.)', 'price': None, 'published': True, 'sortorder': 4200, 'source': '', 'updated': datetime.datetime(2015, 11, 27, 15, 48, 10, 42090)}, 56702: {'blurb': 'Contribute to the Ubuntu ' 'Studio project', 'choicecategory_id': 43920, 'comment': '', 'cost': 5.0, 'created': datetime.datetime(2015, 2, 18, 19, 57, 2, 391752), 'id': 56702, 'multiplier': 1, 'name': '$5 to the Ubuntu Studio ' 'Project', 'price': None, 'published': True, 'sortorder': 20000, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 53, 4, 535207)}, 56703: {'blurb': 'Contribute to the ' 'OpenBSD Project / ' 'Foundation', 'choicecategory_id': 43920, 'comment': '', 'cost': 5.0, 'created': datetime.datetime(2015, 2, 18, 19, 58, 2, 870928), 'id': 56703, 'multiplier': 1, 'name': '$5 to the OpenBSD Project', 'price': None, 'published': True, 'sortorder': 20010, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 53, 4, 585814)}, 56704: {'blurb': 'Contribute to the ' 'FreeBSD Foundation', 'choicecategory_id': 43920, 'comment': '', 'cost': 5.0, 'created': datetime.datetime(2015, 2, 18, 19, 59, 3, 155994), 'id': 56704, 'multiplier': 1, 'name': '$5 to the FreeBSD ' 'Foundation', 'price': None, 'published': True, 'sortorder': 20020, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 53, 4, 667788)}, 56706: {'blurb': '', 'choicecategory_id': 43920, 'comment': '', 'cost': 5.0, 'created': datetime.datetime(2015, 2, 18, 20, 58, 6, 785612), 'id': 56706, 'multiplier': 1, 'name': '$5 to other Open Source ' 'project (please state in ' 'Notes)', 'price': None, 'published': True, 'sortorder': 21000, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 53, 4, 911462)}, 56708: {'blurb': 'Contribute qty x $5 to ' 'the EFF', 'choicecategory_id': 43920, 'comment': 'Contribute qty x $5 to ' 'the EFF', 'cost': 5.0, 'created': datetime.datetime(2015, 2, 19, 15, 30, 55, 572243), 'id': 56708, 'multiplier': 1, 'name': '$5 to the Electronic ' 'Frontier Foundation', 'price': None, 'published': True, 'sortorder': 20040, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 53, 4, 730388)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 6, 17, 23, 24, 16, 535388), 'defaultchoice_id': 56702, 'id': 58694, 'name': 'Org Contribution', 'option_id': 56701, 'product_id': 58685, 'published': True, 'qty': 1, 'required': True, 'single': False, 'updated': datetime.datetime(2016, 6, 18, 1, 23, 38, 698915)}), ('58686_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbed8f5ca0>, 'allowed_quantities': '', 'choices': {18049: {'blurb': '', 'choicecategory_id': 43919, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 18049, 'multiplier': None, 'name': 'Standard 1yr full /3yr ' 'limited warranty', 'price': None, 'published': True, 'sortorder': 9001, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 53, 3, 510446)}, 18051: {'blurb': '', 'choicecategory_id': 43919, 'comment': '', 'cost': 100.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 18051, 'multiplier': None, 'name': 'Extended 2yr full / 3yr ' 'limited warranty', 'price': None, 'published': True, 'sortorder': 9002, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 53, 3, 551220)}, 18052: {'blurb': '', 'choicecategory_id': 43919, 'comment': '', 'cost': 200.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 18052, 'multiplier': None, 'name': 'Premium full 3yr warranty', 'price': None, 'published': True, 'sortorder': 9003, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 53, 3, 596260)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 6, 17, 23, 24, 16, 438925), 'defaultchoice_id': 18049, 'id': 58686, 'name': 'Warranty', 'option_id': 18048, 'product_id': 58685, 'published': True, 'qty': 1, 'required': True, 'single': False, 'updated': datetime.datetime(2016, 6, 18, 1, 23, 38, 719656)})]), 'published': True, 'qty': 1, 'sku': 'HUMBOLDT', 'sortorder': 0, 'summary': '', 'title': '', 'totprice': 1695.0, 'updated': datetime.datetime(2019, 12, 2, 5, 9, 18, 732827), 'weight': 40}

No GET data

No POST data

SQL queries from 1 connection

  •   default 97.46 ms (125 queries including 123 similar and 113 duplicates )
  Query Timeline Time (ms) Action
  +
SELECT "products"."id",
       "products"."name",
       "products"."sku",
       "products"."baseprice",
       "products"."cost",
       "products"."categoryid",
       "products"."weight",
       "products"."baseoptions",
       "products"."sortorder",
       "products"."blurb",
       "products"."description",
       "products"."features",
       "products"."comments",
       "products"."link",
       "products"."title",
       "products"."meta_title",
       "products"."meta_description",
       "products"."meta_keywords",
       "products"."created",
       "products"."updated",
       "products"."published"
  FROM
"products"
 WHERE
UPPER("products"."sku"::text) = UPPER('HUMBOLDT')
 ORDER BY
"products"."sortorder" ASC, "products"."sku" ASC
SELECT ••• FROM "products" WHERE UPPER("products"."sku"::text) = UPPER('HUMBOLDT') ORDER BY "products"."sortorder" ASC, "products"."sku" ASC
9.85001015263198%
9.60

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(371)
  if products:
  +
SELECT "categories"."id",
       "categories"."name",
       "categories"."slug",
       "categories"."title",
       "categories"."blurb",
       "categories"."description",
       "categories"."comments",
       "categories"."sortorder",
       "categories"."meta_title",
       "categories"."meta_description",
       "categories"."meta_keywords",
       "categories"."published",
       "categories"."created",
       "categories"."updated"
  FROM
"categories"
 WHERE
"categories"."id" = 18787
SELECT ••• FROM "categories" WHERE "categories"."id" = 18787
1.814997027602927%
1.77

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(375)
  if product.category.slug != category:
  +
SELECT "prodopts"."id",
       "prodopts"."name",
       "prodopts"."qty",
       "prodopts"."single",
       "prodopts"."required",
       "prodopts"."choices_orderby",
       "prodopts"."allowed_quantities",
       "prodopts"."productid",
       "prodopts"."optionid",
       "prodopts"."defaultchoiceid",
       "prodopts"."published",
       "prodopts"."created",
       "prodopts"."updated"
  FROM
"prodopts"
 INNER JOIN
"options"
    ON
("prodopts"."optionid" = "options"."id")
 WHERE
"prodopts"."productid" = 58685
 ORDER BY
"options"."sortorder" ASC
SELECT ••• FROM "prodopts" INNER JOIN "options" ON ("prodopts"."optionid" = "options"."id") WHERE "prodopts"."productid" = 58685 ORDER BY "options"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
3.1120875034555646%
3.03

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(193)
  for po in product_options:
  +
SELECT COUNT(*) AS "__count"
  FROM
"choices"
 INNER JOIN
"prodoptchoices"
    ON
("choices"."id" = "prodoptchoices"."choiceid")
 WHERE
"prodoptchoices"."productoptionid" = 58687
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58687
  26 similar queries.   Duplicated 2 times.
1.7773222005034728%
1.73

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(499)
  if self.choices.count():  # POCs - yuk - TODO: remove them
  +
SELECT "choices"."id",
       "choices"."name",
       "choices"."source",
       "choices"."price",
       "choices"."cost",
       "choices"."sortorder",
       "choices"."multiplier",
       "choices"."comment",
       "choices"."choicecategory_id",
       "choices"."blurb",
       "choices"."published",
       "choices"."created",
       "choices"."updated"
  FROM
"choices"
 WHERE
"choices"."id" = 58696
SELECT ••• FROM "choices" WHERE "choices"."id" = 58696
  14 similar queries.   Duplicated 2 times.
0.923033263936628%
0.90

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(492)
  result = [self.defaultchoice.id]
  +
SELECT "choices"."id",
       "choices"."name",
       "choices"."source",
       "choices"."price",
       "choices"."cost",
       "choices"."sortorder",
       "choices"."multiplier",
       "choices"."comment",
       "choices"."choicecategory_id",
       "choices"."blurb",
       "choices"."published",
       "choices"."created",
       "choices"."updated"
  FROM
"choices"
 WHERE
"choices"."id" IN (58696)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (58696) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.7221823999843429%
0.70

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
  +
SELECT "options"."id",
       "options"."name",
       "options"."usage_notes",
       "options"."sortorder",
       "options"."blurb",
       "options"."description",
       "options"."comments",
       "options"."published",
       "options"."created",
       "options"."updated"
  FROM
"options"
 WHERE
"options"."id" = 18849
SELECT ••• FROM "options" WHERE "options"."id" = 18849
  25 similar queries.   Duplicated 2 times.
0.704568195106676%
0.69

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(199)
  opts [lineid] ['name'] = po.calc_name
/home/joe/eracks12/web/apps/products/models.py in calc_name(477)
  return self.name or self.option.name  # or self.option.display_name
  +
SELECT COUNT(*) AS "__count"
  FROM
"choices"
 INNER JOIN
"prodoptchoices"
    ON
("choices"."id" = "prodoptchoices"."choiceid")
 WHERE
"prodoptchoices"."productoptionid" = 58792
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58792
  26 similar queries.   Duplicated 2 times.
0.6470773875198466%
0.63

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(499)
  if self.choices.count():  # POCs - yuk - TODO: remove them
  +
SELECT "options"."id",
       "options"."name",
       "options"."usage_notes",
       "options"."sortorder",
       "options"."blurb",
       "options"."description",
       "options"."comments",
       "options"."published",
       "options"."created",
       "options"."updated"
  FROM
"options"
 WHERE
"options"."id" = 58780
SELECT ••• FROM "options" WHERE "options"."id" = 58780
  25 similar queries.   Duplicated 2 times.
0.44182297234814477%
0.43

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id"
  FROM
"choices"
 INNER JOIN
"options_choices"
    ON
("choices"."id" = "options_choices"."choice_id")
 WHERE
"options_choices"."option_id" = 58780
 ORDER BY
"choices"."sortorder" ASC, "choices"."cost" ASC
SELECT ••• FROM "choices" INNER JOIN "options_choices" ON ("choices"."id" = "options_choices"."choice_id") WHERE "options_choices"."option_id" = 58780 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  22 similar queries.   Duplicated 2 times.
1.3633883858783007%
1.33

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id",
       "choices"."name",
       "choices"."source",
       "choices"."price",
       "choices"."cost",
       "choices"."sortorder",
       "choices"."multiplier",
       "choices"."comment",
       "choices"."choicecategory_id",
       "choices"."blurb",
       "choices"."published",
       "choices"."created",
       "choices"."updated"
  FROM
"choices"
 WHERE
"choices"."id" IN (58800, 58801)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (58800, 58801) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.5905651468706653%
0.58

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
  +
SELECT COUNT(*) AS "__count"
  FROM
"choices"
 INNER JOIN
"prodoptchoices"
    ON
("choices"."id" = "prodoptchoices"."choiceid")
 WHERE
"prodoptchoices"."productoptionid" = 58802
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58802
  26 similar queries.   Duplicated 2 times.
0.6612666081157449%
0.64

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(499)
  if self.choices.count():  # POCs - yuk - TODO: remove them
  +
SELECT "options"."id",
       "options"."name",
       "options"."usage_notes",
       "options"."sortorder",
       "options"."blurb",
       "options"."description",
       "options"."comments",
       "options"."published",
       "options"."created",
       "options"."updated"
  FROM
"options"
 WHERE
"options"."id" = 58793
SELECT ••• FROM "options" WHERE "options"."id" = 58793
  25 similar queries.   Duplicated 2 times.
0.4193159327822371%
0.41

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id"
  FROM
"choices"
 INNER JOIN
"options_choices"
    ON
("choices"."id" = "options_choices"."choice_id")
 WHERE
"options_choices"."option_id" = 58793
 ORDER BY
"choices"."sortorder" ASC, "choices"."cost" ASC
SELECT ••• FROM "choices" INNER JOIN "options_choices" ON ("choices"."id" = "options_choices"."choice_id") WHERE "options_choices"."option_id" = 58793 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  22 similar queries.   Duplicated 2 times.
0.7542304671923201%
0.74

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id",
       "choices"."name",
       "choices"."source",
       "choices"."price",
       "choices"."cost",
       "choices"."sortorder",
       "choices"."multiplier",
       "choices"."comment",
       "choices"."choicecategory_id",
       "choices"."blurb",
       "choices"."published",
       "choices"."created",
       "choices"."updated"
  FROM
"choices"
 WHERE
"choices"."id" IN (56609, 56610, 56611, 56612, 59824)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (56609, 56610, 56611, 56612, 59824) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.558272437928276%
0.54

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
  +
SELECT COUNT(*) AS "__count"
  FROM
"choices"
 INNER JOIN
"prodoptchoices"
    ON
("choices"."id" = "prodoptchoices"."choiceid")
 WHERE
"prodoptchoices"."productoptionid" = 58695
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58695
  26 similar queries.   Duplicated 2 times.
0.6084239934827442%
0.59

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(499)
  if self.choices.count():  # POCs - yuk - TODO: remove them
  +
SELECT "options"."id",
       "options"."name",
       "options"."usage_notes",
       "options"."sortorder",
       "options"."blurb",
       "options"."description",
       "options"."comments",
       "options"."published",
       "options"."created",
       "options"."updated"
  FROM
"options"
 WHERE
"options"."id" = 4318
SELECT ••• FROM "options" WHERE "options"."id" = 4318
  25 similar queries.   Duplicated 2 times.
0.4653085788517006%
0.45

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id"
  FROM
"choices"
 INNER JOIN
"options_choices"
    ON
("choices"."id" = "options_choices"."choice_id")
 WHERE
"options_choices"."option_id" = 4318
 ORDER BY
"choices"."sortorder" ASC, "choices"."cost" ASC
SELECT ••• FROM "choices" INNER JOIN "options_choices" ON ("choices"."id" = "options_choices"."choice_id") WHERE "options_choices"."option_id" = 4318 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  22 similar queries.   Duplicated 2 times.
0.7987552628553116%
0.78

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id",
       "choices"."name",
       "choices"."source",
       "choices"."price",
       "choices"."cost",
       "choices"."sortorder",
       "choices"."multiplier",
       "choices"."comment",
       "choices"."choicecategory_id",
       "choices"."blurb",
       "choices"."published",
       "choices"."created",
       "choices"."updated"
  FROM
"choices"
 WHERE
"choices"."id" IN (4663, 19247, 34644, 44729)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (4663, 19247, 34644, 44729) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  4 similar queries.   Duplicated 2 times.
0.5692813159768177%
0.55

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
  +
SELECT COUNT(*) AS "__count"
  FROM
"choices"
 INNER JOIN
"prodoptchoices"
    ON
("choices"."id" = "prodoptchoices"."choiceid")
 WHERE
"prodoptchoices"."productoptionid" = 58807
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58807
  26 similar queries.   Duplicated 2 times.
4.376640628631401%
4.27

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(499)
  if self.choices.count():  # POCs - yuk - TODO: remove them
  +
SELECT "options"."id",
       "options"."name",
       "options"."usage_notes",
       "options"."sortorder",
       "options"."blurb",
       "options"."description",
       "options"."comments",
       "options"."published",
       "options"."created",
       "options"."updated"
  FROM
"options"
 WHERE
"options"."id" = 55119
SELECT ••• FROM "options" WHERE "options"."id" = 55119
  25 similar queries.   Duplicated 2 times.
2.4062960996768283%
2.35

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id"
  FROM
"choices"
 INNER JOIN
"options_choices"
    ON
("choices"."id" = "options_choices"."choice_id")
 WHERE
"options_choices"."option_id" = 55119
 ORDER BY
"choices"."sortorder" ASC, "choices"."cost" ASC
SELECT ••• FROM "choices" INNER JOIN "options_choices" ON ("choices"."id" = "options_choices"."choice_id") WHERE "options_choices"."option_id" = 55119 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  22 similar queries.   Duplicated 2 times.
0.9367332010637023%
0.91

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id",
       "choices"."name",
       "choices"."source",
       "choices"."price",
       "choices"."cost",
       "choices"."sortorder",
       "choices"."multiplier",
       "choices"."comment",
       "choices"."choicecategory_id",
       "choices"."blurb",
       "choices"."published",
       "choices"."created",
       "choices"."updated"
  FROM
"choices"
 WHERE
"choices"."id" IN (54668, 54476, 54667, 55393, 55400, 51758, 55116, 55392, 57723, 57724, 58366)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (54668, 54476, 54667, 55393, 55400, 51758, 55116, 55392, 57723, 57724, 58366) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.6218792888754064%
0.61

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
  +
SELECT COUNT(*) AS "__count"
  FROM
"choices"
 INNER JOIN
"prodoptchoices"
    ON
("choices"."id" = "prodoptchoices"."choiceid")
 WHERE
"prodoptchoices"."productoptionid" = 58803
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58803
  26 similar queries.   Duplicated 2 times.
0.7143538644831576%
0.70

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(499)
  if self.choices.count():  # POCs - yuk - TODO: remove them
  +
SELECT "choices"."id"
  FROM
"choices"
 INNER JOIN
"prodoptchoices"
    ON
("choices"."id" = "prodoptchoices"."choiceid")
 WHERE
"prodoptchoices"."productoptionid" = 58803
 ORDER BY
"choices"."sortorder" ASC, "choices"."cost" ASC
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58803 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  2 similar queries.   Duplicated 2 times.
0.6776576043213517%
0.66

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(500)
  return self._corrected_choices (list (self.choices.values_list ('id', flat=True)))
  +
SELECT "choices"."id",
       "choices"."name",
       "choices"."source",
       "choices"."price",
       "choices"."cost",
       "choices"."sortorder",
       "choices"."multiplier",
       "choices"."comment",
       "choices"."choicecategory_id",
       "choices"."blurb",
       "choices"."published",
       "choices"."created",
       "choices"."updated"
  FROM
"choices"
 WHERE
"choices"."id" IN (30, 58585, 58586, 58587)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (30, 58585, 58586, 58587) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  4 similar queries.   Duplicated 2 times.
0.5570492292562157%
0.54

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
  +
SELECT COUNT(*) AS "__count"
  FROM
"choices"
 INNER JOIN
"prodoptchoices"
    ON
("choices"."id" = "prodoptchoices"."choiceid")
 WHERE
"prodoptchoices"."productoptionid" = 58786
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58786
  26 similar queries.   Duplicated 2 times.
0.6069561430762719%
0.59

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(499)
  if self.choices.count():  # POCs - yuk - TODO: remove them
  +
SELECT "options"."id",
       "options"."name",
       "options"."usage_notes",
       "options"."sortorder",
       "options"."blurb",
       "options"."description",
       "options"."comments",
       "options"."published",
       "options"."created",
       "options"."updated"
  FROM
"options"
 WHERE
"options"."id" = 55078
SELECT ••• FROM "options" WHERE "options"."id" = 55078
  25 similar queries.   Duplicated 2 times.
0.4056159956551628%
0.40

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id"
  FROM
"choices"
 INNER JOIN
"options_choices"
    ON
("choices"."id" = "options_choices"."choice_id")
 WHERE
"options_choices"."option_id" = 55078
 ORDER BY
"choices"."sortorder" ASC, "choices"."cost" ASC
SELECT ••• FROM "choices" INNER JOIN "options_choices" ON ("choices"."id" = "options_choices"."choice_id") WHERE "options_choices"."option_id" = 55078 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  22 similar queries.   Duplicated 2 times.
2.1090563923661994%
2.06

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id",
       "choices"."name",
       "choices"."source",
       "choices"."price",
       "choices"."cost",
       "choices"."sortorder",
       "choices"."multiplier",
       "choices"."comment",
       "choices"."choicecategory_id",
       "choices"."blurb",
       "choices"."published",
       "choices"."created",
       "choices"."updated"
  FROM
"choices"
 WHERE
"choices"."id" IN (30, 31147, 31809, 12160, 12161, 13079, 59718, 59719, 59189, 59493, 59193, 59495, 59496, 8261, 9190, 8259, 8260, 56893, 32432, 59722, 59723, 24, 59725, 59724, 41887, 4470, 38353, 58976, 58975, 35523, 35522, 59717, 59487, 36898, 56963, 16588)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (30, 31147, 31809, 12160, 12161, 13079, 59718, 59719, 59189, 59493, 59193, 59495, 59496, 8261, 9190, 8259, 8260, 56893, 32432, 59722, 59723, 24, 59725, 59724, 41887, 4470, 38353, 58976, 58975, 35523, 35522, 59717, 59487, 36898, 56963, 16588) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.759123301880561%
0.74

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
  +
SELECT COUNT(*) AS "__count"
  FROM
"choices"
 INNER JOIN
"prodoptchoices"
    ON
("choices"."id" = "prodoptchoices"."choiceid")
 WHERE
"prodoptchoices"."productoptionid" = 58788
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58788
  26 similar queries.   Duplicated 2 times.
0.5328296975494238%
0.52

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(499)
  if self.choices.count():  # POCs - yuk - TODO: remove them
  +
SELECT "options"."id",
       "options"."name",
       "options"."usage_notes",
       "options"."sortorder",
       "options"."blurb",
       "options"."description",
       "options"."comments",
       "options"."published",
       "options"."created",
       "options"."updated"
  FROM
"options"
 WHERE
"options"."id" = 9876
SELECT ••• FROM "options" WHERE "options"."id" = 9876
  25 similar queries.   Duplicated 2 times.
0.3650054677427641%
0.36

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id"
  FROM
"choices"
 INNER JOIN
"options_choices"
    ON
("choices"."id" = "options_choices"."choice_id")
 WHERE
"options_choices"."option_id" = 9876
 ORDER BY
"choices"."sortorder" ASC, "choices"."cost" ASC
SELECT ••• FROM "choices" INNER JOIN "options_choices" ON ("choices"."id" = "options_choices"."choice_id") WHERE "options_choices"."option_id" = 9876 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  22 similar queries.   Duplicated 2 times.
0.625548914891587%
0.61

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id",
       "choices"."name",
       "choices"."source",
       "choices"."price",
       "choices"."cost",
       "choices"."sortorder",
       "choices"."multiplier",
       "choices"."comment",
       "choices"."choicecategory_id",
       "choices"."blurb",
       "choices"."published",
       "choices"."created",
       "choices"."updated"
  FROM
"choices"
 WHERE
"choices"."id" IN (12817, 55101, 9880, 13498, 57122, 55098, 13499, 55097, 55096, 14673, 55099, 55100)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (12817, 55101, 9880, 13498, 57122, 55098, 13499, 55097, 55096, 14673, 55099, 55100) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.4985798547317381%
0.49

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
  +
SELECT COUNT(*) AS "__count"
  FROM
"choices"
 INNER JOIN
"prodoptchoices"
    ON
("choices"."id" = "prodoptchoices"."choiceid")
 WHERE
"prodoptchoices"."productoptionid" = 58790
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58790
  26 similar queries.   Duplicated 2 times.
0.4741156812905341%
0.46

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(499)
  if self.choices.count():  # POCs - yuk - TODO: remove them
  +
SELECT "options"."id",
       "options"."name",
       "options"."usage_notes",
       "options"."sortorder",
       "options"."blurb",
       "options"."description",
       "options"."comments",
       "options"."published",
       "options"."created",
       "options"."updated"
  FROM
"options"
 WHERE
"options"."id" = 57111
SELECT ••• FROM "options" WHERE "options"."id" = 57111
  25 similar queries.   Duplicated 2 times.
0.3253735067680136%
0.32

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id"
  FROM
"choices"
 INNER JOIN
"options_choices"
    ON
("choices"."id" = "options_choices"."choice_id")
 WHERE
"options_choices"."option_id" = 57111
 ORDER BY
"choices"."sortorder" ASC, "choices"."cost" ASC
SELECT ••• FROM "choices" INNER JOIN "options_choices" ON ("choices"."id" = "options_choices"."choice_id") WHERE "options_choices"."option_id" = 57111 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  22 similar queries.   Duplicated 2 times.
0.6027972335912674%
0.59

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id",
       "choices"."name",
       "choices"."source",
       "choices"."price",
       "choices"."cost",
       "choices"."sortorder",
       "choices"."multiplier",
       "choices"."comment",
       "choices"."choicecategory_id",
       "choices"."blurb",
       "choices"."published",
       "choices"."created",
       "choices"."updated"
  FROM
"choices"
 WHERE
"choices"."id" IN (30, 58794, 57109, 57114, 57115, 57117, 57118, 57119, 38327, 57116)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (30, 58794, 57109, 57114, 57115, 57117, 57118, 57119, 38327, 57116) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.5208422525632338%
0.51

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
  +
SELECT COUNT(*) AS "__count"
  FROM
"choices"
 INNER JOIN
"prodoptchoices"
    ON
("choices"."id" = "prodoptchoices"."choiceid")
 WHERE
"prodoptchoices"."productoptionid" = 58693
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58693
  26 similar queries.   Duplicated 2 times.
0.47313711435288586%
0.46

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(499)
  if self.choices.count():  # POCs - yuk - TODO: remove them
  +
SELECT "options"."id",
       "options"."name",
       "options"."usage_notes",
       "options"."sortorder",
       "options"."blurb",
       "options"."description",
       "options"."comments",
       "options"."published",
       "options"."created",
       "options"."updated"
  FROM
"options"
 WHERE
"options"."id" = 18991
SELECT ••• FROM "options" WHERE "options"."id" = 18991
  25 similar queries.   Duplicated 2 times.
0.33760559348861563%
0.33

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id"
  FROM
"choices"
 INNER JOIN
"options_choices"
    ON
("choices"."id" = "options_choices"."choice_id")
 WHERE
"options_choices"."option_id" = 18991
 ORDER BY
"choices"."sortorder" ASC, "choices"."cost" ASC
SELECT ••• FROM "choices" INNER JOIN "options_choices" ON ("choices"."id" = "options_choices"."choice_id") WHERE "options_choices"."option_id" = 18991 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  22 similar queries.   Duplicated 2 times.
1.5287661983408398%
1.49

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id",
       "choices"."name",
       "choices"."source",
       "choices"."price",
       "choices"."cost",
       "choices"."sortorder",
       "choices"."multiplier",
       "choices"."comment",
       "choices"."choicecategory_id",
       "choices"."blurb",
       "choices"."published",
       "choices"."created",
       "choices"."updated"
  FROM
"choices"
 WHERE
"choices"."id" IN (30, 38803, 38804, 38802, 38805, 38806, 47138, 47151, 58559, 58560, 38807, 38808, 18995, 22544, 22550, 18994, 22542, 24740, 22552, 22554, 21970, 21969, 21968, 31191, 31178, 37203, 37204, 27686, 27685, 28475, 28447, 28446, 28476, 28449, 28448, 28477, 28451, 28450)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (30, 38803, 38804, 38802, 38805, 38806, 47138, 47151, 58559, 58560, 38807, 38808, 18995, 22544, 22550, 18994, 22542, 24740, 22552, 22554, 21970, 21969, 21968, 31191, 31178, 37203, 37204, 27686, 27685, 28475, 28447, 28446, 28476, 28449, 28448, 28477, 28451, 28450) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.7586340184117369%
0.74

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
  +
SELECT COUNT(*) AS "__count"
  FROM
"choices"
 INNER JOIN
"prodoptchoices"
    ON
("choices"."id" = "prodoptchoices"."choiceid")
 WHERE
"prodoptchoices"."productoptionid" = 58689
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58689
  26 similar queries.   Duplicated 2 times.
0.4743603230249461%
0.46

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(499)
  if self.choices.count():  # POCs - yuk - TODO: remove them
  +
SELECT "options"."id",
       "options"."name",
       "options"."usage_notes",
       "options"."sortorder",
       "options"."blurb",
       "options"."description",
       "options"."comments",
       "options"."published",
       "options"."created",
       "options"."updated"
  FROM
"options"
 WHERE
"options"."id" = 19011
SELECT ••• FROM "options" WHERE "options"."id" = 19011
  25 similar queries.   Duplicated 2 times.
0.47191390568082575%
0.46

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id"
  FROM
"choices"
 INNER JOIN
"options_choices"
    ON
("choices"."id" = "options_choices"."choice_id")
 WHERE
"options_choices"."option_id" = 19011
 ORDER BY
"choices"."sortorder" ASC, "choices"."cost" ASC
SELECT ••• FROM "choices" INNER JOIN "options_choices" ON ("choices"."id" = "options_choices"."choice_id") WHERE "options_choices"."option_id" = 19011 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  22 similar queries.   Duplicated 2 times.
0.5695259577112298%
0.56

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id",
       "choices"."name",
       "choices"."source",
       "choices"."price",
       "choices"."cost",
       "choices"."sortorder",
       "choices"."multiplier",
       "choices"."comment",
       "choices"."choicecategory_id",
       "choices"."blurb",
       "choices"."published",
       "choices"."created",
       "choices"."updated"
  FROM
"choices"
 WHERE
"choices"."id" IN (30, 38803, 38804, 38802, 38805, 38806, 47138, 47151, 58559, 58560, 38807, 38808, 18995, 22544, 22550, 18994, 22542, 22552, 22554, 27696, 28445)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (30, 38803, 38804, 38802, 38805, 38806, 47138, 47151, 58559, 58560, 38807, 38808, 18995, 22544, 22550, 18994, 22542, 22552, 22554, 27696, 28445) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.6238364227507027%
0.61

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
  +
SELECT COUNT(*) AS "__count"
  FROM
"choices"
 INNER JOIN
"prodoptchoices"
    ON
("choices"."id" = "prodoptchoices"."choiceid")
 WHERE
"prodoptchoices"."productoptionid" = 58694
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58694
  26 similar queries.   Duplicated 2 times.
0.4775406655723026%
0.47

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(499)
  if self.choices.count():  # POCs - yuk - TODO: remove them
  +
SELECT "options"."id",
       "options"."name",
       "options"."usage_notes",
       "options"."sortorder",
       "options"."blurb",
       "options"."description",
       "options"."comments",
       "options"."published",
       "options"."created",
       "options"."updated"
  FROM
"options"
 WHERE
"options"."id" = 56701
SELECT ••• FROM "options" WHERE "options"."id" = 56701
  25 similar queries.   Duplicated 2 times.
0.3407859360359721%
0.33

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id"
  FROM
"choices"
 INNER JOIN
"options_choices"
    ON
("choices"."id" = "options_choices"."choice_id")
 WHERE
"options_choices"."option_id" = 56701
 ORDER BY
"choices"."sortorder" ASC, "choices"."cost" ASC
SELECT ••• FROM "choices" INNER JOIN "options_choices" ON ("choices"."id" = "options_choices"."choice_id") WHERE "options_choices"."option_id" = 56701 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  22 similar queries.   Duplicated 2 times.
0.5883633712609568%
0.57

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id",
       "choices"."name",
       "choices"."source",
       "choices"."price",
       "choices"."cost",
       "choices"."sortorder",
       "choices"."multiplier",
       "choices"."comment",
       "choices"."choicecategory_id",
       "choices"."blurb",
       "choices"."published",
       "choices"."created",
       "choices"."updated"
  FROM
"choices"
 WHERE
"choices"."id" IN (16588, 56702, 56703, 56704, 56708, 56706)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (16588, 56702, 56703, 56704, 56708, 56706) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.46384072844522833%
0.45

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
  +
SELECT COUNT(*) AS "__count"
  FROM
"choices"
 INNER JOIN
"prodoptchoices"
    ON
("choices"."id" = "prodoptchoices"."choiceid")
 WHERE
"prodoptchoices"."productoptionid" = 58686
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58686
  26 similar queries.   Duplicated 2 times.
0.48854954362084446%
0.48

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(499)
  if self.choices.count():  # POCs - yuk - TODO: remove them
  +
SELECT "options"."id",
       "options"."name",
       "options"."usage_notes",
       "options"."sortorder",
       "options"."blurb",
       "options"."description",
       "options"."comments",
       "options"."published",
       "options"."created",
       "options"."updated"
  FROM
"options"
 WHERE
"options"."id" = 18048
SELECT ••• FROM "options" WHERE "options"."id" = 18048
  25 similar queries.   Duplicated 2 times.
0.35375194795981024%
0.34

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id"
  FROM
"choices"
 INNER JOIN
"options_choices"
    ON
("choices"."id" = "options_choices"."choice_id")
 WHERE
"options_choices"."option_id" = 18048
 ORDER BY
"choices"."sortorder" ASC, "choices"."cost" ASC
SELECT ••• FROM "choices" INNER JOIN "options_choices" ON ("choices"."id" = "options_choices"."choice_id") WHERE "options_choices"."option_id" = 18048 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  22 similar queries.   Duplicated 2 times.
0.516683343078229%
0.50

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
/home/joe/eracks12/web/apps/products/models.py in all_choices(502)
  return self.option_choices()
/home/joe/eracks12/web/apps/products/models.py in option_choices(494)
  result = list (self.option.choices.values_list ('id', flat=True))  # all()  #filter(published=True)],
  +
SELECT "choices"."id",
       "choices"."name",
       "choices"."source",
       "choices"."price",
       "choices"."cost",
       "choices"."sortorder",
       "choices"."multiplier",
       "choices"."comment",
       "choices"."choicecategory_id",
       "choices"."blurb",
       "choices"."published",
       "choices"."created",
       "choices"."updated"
  FROM
"choices"
 WHERE
"choices"."id" IN (18049, 18051, 18052)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (18049, 18051, 18052) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.4100195468745795%
0.40

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(198)
  opts [lineid] ['choices'] = dict ([(c['id'],c) for c in list(po.all_choices().values())])
  +
SELECT "products_productimage"."id",
       "products_productimage"."published",
       "products_productimage"."created",
       "products_productimage"."updated",
       "products_productimage"."title",
       "products_productimage"."caption",
       "products_productimage"."sortorder",
       "products_productimage"."image",
       "products_productimage"."product_id"
  FROM
"products_productimage"
 WHERE
("products_productimage"."product_id" = 58685 AND "products_productimage"."published" = true)
 ORDER BY
"products_productimage"."sortorder" ASC
 LIMIT
1
SELECT ••• FROM "products_productimage" WHERE ("products_productimage"."product_id" = 58685 AND "products_productimage"."published" = true) ORDER BY "products_productimage"."sortorder" ASC LIMIT 1
  3 similar queries.   Duplicated 3 times.
1.0475559067523565%
1.02

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(210)
  if product.image:
/home/joe/eracks12/web/apps/products/models.py in image(384)
  if imgs: return imgs [0]
  +
SELECT "products_productimage"."id",
       "products_productimage"."published",
       "products_productimage"."created",
       "products_productimage"."updated",
       "products_productimage"."title",
       "products_productimage"."caption",
       "products_productimage"."sortorder",
       "products_productimage"."image",
       "products_productimage"."product_id"
  FROM
"products_productimage"
 WHERE
("products_productimage"."product_id" = 58685 AND "products_productimage"."published" = true)
 ORDER BY
"products_productimage"."sortorder" ASC
 LIMIT
1
SELECT ••• FROM "products_productimage" WHERE ("products_productimage"."product_id" = 58685 AND "products_productimage"."published" = true) ORDER BY "products_productimage"."sortorder" ASC LIMIT 1
  3 similar queries.   Duplicated 3 times.
0.3872678655742598%
0.38

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(384)
  ses_helper.fill (product)
/home/joe/eracks12/web/apps/home/helpers.py in fill(211)
  prod ['image'] = product.image.image  # property - JJW 5/27/19
/home/joe/eracks12/web/apps/products/models.py in image(384)
  if imgs: return imgs [0]
  +
SELECT "products_productimage"."id",
       "products_productimage"."published",
       "products_productimage"."created",
       "products_productimage"."updated",
       "products_productimage"."title",
       "products_productimage"."caption",
       "products_productimage"."sortorder",
       "products_productimage"."image",
       "products_productimage"."product_id"
  FROM
"products_productimage"
 WHERE
("products_productimage"."product_id" = 58685 AND "products_productimage"."published" = true)
 ORDER BY
"products_productimage"."sortorder" ASC
SELECT ••• FROM "products_productimage" WHERE ("products_productimage"."product_id" = 58685 AND "products_productimage"."published" = true) ORDER BY "products_productimage"."sortorder" ASC
  3 similar queries.   Duplicated 3 times.
0.38555537343337554%
0.38

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(443)
  photos_list = [str(t) for t in product_photos (product)]
  +
SELECT "products_productimage"."id",
       "products_productimage"."published",
       "products_productimage"."created",
       "products_productimage"."updated",
       "products_productimage"."title",
       "products_productimage"."caption",
       "products_productimage"."sortorder",
       "products_productimage"."image",
       "products_productimage"."product_id"
  FROM
"products_productimage"
 WHERE
("products_productimage"."product_id" = 58685 AND "products_productimage"."published" = true)
 ORDER BY
"products_productimage"."sortorder" ASC
 LIMIT
1
SELECT ••• FROM "products_productimage" WHERE ("products_productimage"."product_id" = 58685 AND "products_productimage"."published" = true) ORDER BY "products_productimage"."sortorder" ASC LIMIT 1
  3 similar queries.   Duplicated 3 times.
0.5245118785794144%
0.51

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(446)
  return render (request, 'product.html', dict (
/usr/local/lib/python3.8/site-packages/django/shortcuts.py in render(36)
  content = loader.render_to_string(template_name, context, request, using=using)
/usr/local/lib/python3.8/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)
/usr/local/lib/python3.8/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(171)
  return self._render(context)
/usr/local/lib/python3.8/site-packages/django/test/utils.py in instrumented_test_render(96)
  return self.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(150)
  return compiled_parent._render(context)
/usr/local/lib/python3.8/site-packages/django/test/utils.py in instrumented_test_render(96)
  return self.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(62)
  result = block.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(62)
  result = block.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(987)
  output = self.filter_expression.resolve(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in resolve(671)
  obj = self.var.resolve(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in resolve(796)
  value = self._resolve_lookup(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in _resolve_lookup(837)
  current = getattr(current, bit)
/home/joe/eracks12/web/apps/products/models.py in image(384)
  if imgs: return imgs [0]
229 <div class="photowrap col-6 xmlauto float-left">
230 <div class="xml-auto xphoto-wrapper xrow xalign-items-center notworking-float-right">
231 <noscript style="min-height: 300px;display:inline-block">
232 {{ product.image|safe }}
233 <div class="product-name">
234 {{ product.name }}
235 <a href="#photos">
236 More Photos

/home/joe/eracks12/web/apps/products/templates/product.html

  +
SELECT "products_productimage"."id",
       "products_productimage"."published",
       "products_productimage"."created",
       "products_productimage"."updated",
       "products_productimage"."title",
       "products_productimage"."caption",
       "products_productimage"."sortorder",
       "products_productimage"."image",
       "products_productimage"."product_id"
  FROM
"products_productimage"
 WHERE
("products_productimage"."product_id" = 58685 AND "products_productimage"."published" = true)
 ORDER BY
"products_productimage"."sortorder" ASC
SELECT ••• FROM "products_productimage" WHERE ("products_productimage"."product_id" = 58685 AND "products_productimage"."published" = true) ORDER BY "products_productimage"."sortorder" ASC
  3 similar queries.   Duplicated 3 times.
0.4682442796646451%
0.46

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(446)
  return render (request, 'product.html', dict (
/usr/local/lib/python3.8/site-packages/django/shortcuts.py in render(36)
  content = loader.render_to_string(template_name, context, request, using=using)
/usr/local/lib/python3.8/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)
/usr/local/lib/python3.8/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(171)
  return self._render(context)
/usr/local/lib/python3.8/site-packages/django/test/utils.py in instrumented_test_render(96)
  return self.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(150)
  return compiled_parent._render(context)
/usr/local/lib/python3.8/site-packages/django/test/utils.py in instrumented_test_render(96)
  return self.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(62)
  result = block.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(62)
  result = block.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/defaulttags.py in render(166)
  len_values = len(values)
244 data-arrow-left-classes="fa fa-angle-left g-left-0"
245 data-arrow-right-classes="fa fa-angle-right g-right-0"
246 data-nav-for="#carousel-08-2">
247 {% for img in product.images.published %}
248 <div class="js-slide">
249 <a class="js-fancybox d-block g-pos-rel" href="javascript:;"
250 data-fancybox="lightbox-gallery--08-1"
251 data-src="{{ img.image.url }}"

/home/joe/eracks12/web/apps/products/templates/product.html

  +
SELECT "products_productimage"."id",
       "products_productimage"."published",
       "products_productimage"."created",
       "products_productimage"."updated",
       "products_productimage"."title",
       "products_productimage"."caption",
       "products_productimage"."sortorder",
       "products_productimage"."image",
       "products_productimage"."product_id"
  FROM
"products_productimage"
 WHERE
("products_productimage"."product_id" = 58685 AND "products_productimage"."published" = true)
 ORDER BY
"products_productimage"."sortorder" ASC
SELECT ••• FROM "products_productimage" WHERE ("products_productimage"."product_id" = 58685 AND "products_productimage"."published" = true) ORDER BY "products_productimage"."sortorder" ASC
  3 similar queries.   Duplicated 3 times.
0.8349622395482935%
0.81

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(446)
  return render (request, 'product.html', dict (
/usr/local/lib/python3.8/site-packages/django/shortcuts.py in render(36)
  content = loader.render_to_string(template_name, context, request, using=using)
/usr/local/lib/python3.8/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)
/usr/local/lib/python3.8/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(171)
  return self._render(context)
/usr/local/lib/python3.8/site-packages/django/test/utils.py in instrumented_test_render(96)
  return self.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(150)
  return compiled_parent._render(context)
/usr/local/lib/python3.8/site-packages/django/test/utils.py in instrumented_test_render(96)
  return self.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(62)
  result = block.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(62)
  result = block.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/defaulttags.py in render(166)
  len_values = len(values)
266 data-slides-show="4"
267 data-is-thumbs="true"
268 data-nav-for="#carousel-08-1">
269 {% for img in product.images.published %}
270 <div class="js-slide g-px-10">
271 <img class="img-fluid w-100" src="{{ img.image.url }}" alt="{{ img.image.alt }}" title="{{ img.image.title }}">
272 </div>
273 {% endfor %}

/home/joe/eracks12/web/apps/products/templates/product.html

  +
SELECT "prodopts"."id",
       "prodopts"."name",
       "prodopts"."qty",
       "prodopts"."single",
       "prodopts"."required",
       "prodopts"."choices_orderby",
       "prodopts"."allowed_quantities",
       "prodopts"."productid",
       "prodopts"."optionid",
       "prodopts"."defaultchoiceid",
       "prodopts"."published",
       "prodopts"."created",
       "prodopts"."updated"
  FROM
"prodopts"
 INNER JOIN
"options"
    ON
("prodopts"."optionid" = "options"."id")
 WHERE
"prodopts"."productid" = 58685
 ORDER BY
"options"."sortorder" ASC
SELECT ••• FROM "prodopts" INNER JOIN "options" ON ("prodopts"."optionid" = "options"."id") WHERE "prodopts"."productid" = 58685 ORDER BY "options"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.8462157593312474%
0.82

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(446)
  return render (request, 'product.html', dict (
/usr/local/lib/python3.8/site-packages/django/shortcuts.py in render(36)
  content = loader.render_to_string(template_name, context, request, using=using)
/usr/local/lib/python3.8/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)
/usr/local/lib/python3.8/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(171)
  return self._render(context)
/usr/local/lib/python3.8/site-packages/django/test/utils.py in instrumented_test_render(96)
  return self.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(150)
  return compiled_parent._render(context)
/usr/local/lib/python3.8/site-packages/django/test/utils.py in instrumented_test_render(96)
  return self.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(62)
  result = block.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(62)
  result = block.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(987)
  output = self.filter_expression.resolve(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in resolve(671)
  obj = self.var.resolve(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in resolve(796)
  value = self._resolve_lookup(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in _resolve_lookup(837)
  current = getattr(current, bit)
/home/joe/eracks12/web/apps/products/models.py in prodopts_as_table(427)
  return ''.join ([po.as_rows for po in self.product_options()])
355 </tr>
356 </thead>
357 <tbody>
358 {{ product.prodopts_as_table|safe }}
359 <tr>
360 <td>Notes</td>
361 <td><textarea id=notes name=notes placeholder="Enter Product notes or Quote details here"></textarea></td>
362 <td>Enter notes or custom instructions for this item here</td>

/home/joe/eracks12/web/apps/products/templates/product.html

  +
SELECT "options"."id",
       "options"."name",
       "options"."usage_notes",
       "options"."sortorder",
       "options"."blurb",
       "options"."description",
       "options"."comments",
       "options"."published",
       "options"."created",
       "options"."updated"
  FROM
"options"
 WHERE
"options"."id" = 18849
SELECT ••• FROM "options" WHERE "options"."id" = 18849
  25 similar queries.   Duplicated 2 times.
0.35008232194362965%
0.34

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(446)
  return render (request, 'product.html', dict (
/usr/local/lib/python3.8/site-packages/django/shortcuts.py in render(36)
  content = loader.render_to_string(template_name, context, request, using=using)
/usr/local/lib/python3.8/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)
/usr/local/lib/python3.8/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(171)
  return self._render(context)
/usr/local/lib/python3.8/site-packages/django/test/utils.py in instrumented_test_render(96)
  return self.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(150)
  return compiled_parent._render(context)
/usr/local/lib/python3.8/site-packages/django/test/utils.py in instrumented_test_render(96)
  return self.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(62)
  result = block.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(62)
  result = block.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(987)
  output = self.filter_expression.resolve(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in resolve(671)
  obj = self.var.resolve(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in resolve(796)
  value = self._resolve_lookup(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in _resolve_lookup(837)
  current = getattr(current, bit)
/home/joe/eracks12/web/apps/products/models.py in prodopts_as_table(427)
  return ''.join ([po.as_rows for po in self.product_options()])
/home/joe/eracks12/web/apps/products/models.py in <listcomp>(427)
  return ''.join ([po.as_rows for po in self.product_options()])
/home/joe/eracks12/web/apps/products/models.py in as_rows(540)
  .td (self.calc_name, cls=lineid, title=(self.option.blurb or self.calc_name + ' option'))
/home/joe/eracks12/web/apps/products/models.py in calc_name(477)
  return self.name or self.option.name  # or self.option.display_name
355 </tr>
356 </thead>
357 <tbody>
358 {{ product.prodopts_as_table|safe }}
359 <tr>
360 <td>Notes</td>
361 <td><textarea id=notes name=notes placeholder="Enter Product notes or Quote details here"></textarea></td>
362 <td>Enter notes or custom instructions for this item here</td>

/home/joe/eracks12/web/apps/products/templates/product.html

  +
SELECT "choices"."id",
       "choices"."name",
       "choices"."source",
       "choices"."price",
       "choices"."cost",
       "choices"."sortorder",
       "choices"."multiplier",
       "choices"."comment",
       "choices"."choicecategory_id",
       "choices"."blurb",
       "choices"."published",
       "choices"."created",
       "choices"."updated"
  FROM
"choices"
 WHERE
"choices"."id" = 58696
SELECT ••• FROM "choices" WHERE "choices"."id" = 58696
  14 similar queries.   Duplicated 2 times.
0.3684304520245327%
0.36

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(446)
  return render (request, 'product.html', dict (
/usr/local/lib/python3.8/site-packages/django/shortcuts.py in render(36)
  content = loader.render_to_string(template_name, context, request, using=using)
/usr/local/lib/python3.8/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)
/usr/local/lib/python3.8/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(171)
  return self._render(context)
/usr/local/lib/python3.8/site-packages/django/test/utils.py in instrumented_test_render(96)
  return self.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(150)
  return compiled_parent._render(context)
/usr/local/lib/python3.8/site-packages/django/test/utils.py in instrumented_test_render(96)
  return self.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(62)
  result = block.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(62)
  result = block.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(987)
  output = self.filter_expression.resolve(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in resolve(671)
  obj = self.var.resolve(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in resolve(796)
  value = self._resolve_lookup(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in _resolve_lookup(837)
  current = getattr(current, bit)
/home/joe/eracks12/web/apps/products/models.py in prodopts_as_table(427)
  return ''.join ([po.as_rows for po in self.product_options()])
/home/joe/eracks12/web/apps/products/models.py in <listcomp>(427)
  return ''.join ([po.as_rows for po in self.product_options()])
/home/joe/eracks12/web/apps/products/models.py in as_rows(541)
  .td (self.as_combos (lineid), cls=lineid + ' dropdowns')
/home/joe/eracks12/web/apps/products/models.py in as_combos(505)
  if self.defaultchoice:
355 </tr>
356 </thead>
357 <tbody>
358 {{ product.prodopts_as_table|safe }}
359 <tr>
360 <td>Notes</td>
361 <td><textarea id=notes name=notes placeholder="Enter Product notes or Quote details here"></textarea></td>
362 <td>Enter notes or custom instructions for this item here</td>

/home/joe/eracks12/web/apps/products/templates/product.html

  +
SELECT COUNT(*) AS "__count"
  FROM
"choices"
 INNER JOIN
"prodoptchoices"
    ON
("choices"."id" = "prodoptchoices"."choiceid")
 WHERE
"prodoptchoices"."productoptionid" = 58687
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58687
  26 similar queries.   Duplicated 2 times.
0.5169279848126411%
0.50

Connection: default

/usr/local/bin/gunicorn in <module>(8)
  sys.exit(run())
/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py in run(58)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(228)
  super().run()
/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in manage_workers(545)
  self.spawn_workers()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_workers(616)
  self.spawn_worker()
/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py in spawn_worker(583)
  worker.init_process()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py in init_process(140)
  self.run()
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run(123)
  self.run_for_one(timeout)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in run_for_one(67)
  self.accept(listener)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in accept(29)
  self.handle(listener, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)
/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py in handle_request(175)
  respiter = self.wsgi(environ, resp.start_response)
/home/joe/eracks12/web/apps/products/views.py in product(446)
  return render (request, 'product.html', dict (
/usr/local/lib/python3.8/site-packages/django/shortcuts.py in render(36)
  content = loader.render_to_string(template_name, context, request, using=using)
/usr/local/lib/python3.8/site-packages/django/template/loader.py in render_to_string(62)
  return template.render(context, request)
/usr/local/lib/python3.8/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(171)
  return self._render(context)
/usr/local/lib/python3.8/site-packages/django/test/utils.py in instrumented_test_render(96)
  return self.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(150)
  return compiled_parent._render(context)
/usr/local/lib/python3.8/site-packages/django/test/utils.py in instrumented_test_render(96)
  return self.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(62)
  result = block.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py in render(62)
  result = block.nodelist.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(937)
  bit = node.render_annotated(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render_annotated(904)
  return self.render(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in render(987)
  output = self.filter_expression.resolve(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in resolve(671)
  obj = self.var.resolve(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in resolve(796)
  value = self._resolve_lookup(context)
/usr/local/lib/python3.8/site-packages/django/template/base.py in _resolve_lookup(837)
  current = getattr(current, bit)
/home/joe/eracks12/web/apps/products/models.py in prodopts_as_table(427)
  return ''.join ([po.as_rows for po in self.product_options()])
/home/joe/eracks12/web/apps/products/models.py in <listcomp>(427)
  return ''.join ([po.as_rows for po in self.product_options()])
/home/joe/eracks12/web/apps/products/models.py in as_rows(541)
  .td (self.as_combos (lineid), cls=lineid + ' dropdowns')
/home/joe/eracks12/web/apps/products/models.py in as_combos(523)
  [(self.choice_name_and_price (c), '%s,%s' % (lineid, c.id)) for c in self.all_choices()],
/home/joe/eracks12/web/apps/products/models.py in all_choices(499)
  if self.choices.count():  # POCs - yuk - TODO: remove them
355 </tr>
356 </thead>
357 <tbody>
358 {{ product.prodopts_as_table|safe }}
359 <tr>
360 <td>Notes</td>
361 <td><textarea id=notes name=notes placeholder="Enter Product notes or Quote details here"></textarea></td>
362 <td>Enter notes or custom instructions for this item here</td>

/home/joe/eracks12/web/apps/products/templates/product.html

  +
SELECT "choices"."id",
       "choices"."name",
       "choices"."source",
       "choices"."price",
       "choices"."cost",
       "choices"."sortorder",
       "choices"."multiplier",
       "choices"."comment",
       "choices"."choicecategory_id",
       "choices"."blurb",
       "choices"."published",
       "choices"."created",
       "choices"."updated"
  FROM
"choices"
 WHERE
"choices"."id" IN (58696)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (58696) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.3936285506689728%
0.38