eRacks/NAS60

Our new flagship eRacks/NAS60 is a 4U rackmount storage server with 60 removable drive bays with up to 960TB of storage with 16TB Hard Drives.

 

 Cloudy

eRacks/NAS60 is a powerful and customizable cloud storage server solution.  It is also a great choice for NAS/local LAN usage, media libraries, many other applications which require a large volume of data storage capacity.

 

Pre-provisioned

In keeping with eRacks' signature service of saving you time and money by pre-configuring your system to be as turnkey as possible, eRacks can preinstall and configure your server three ways:

 

- Your choice of Cloud software is available, including OpenStack, CloudStack, Eucalyptus, OpenNebula, ProxMox, or other - just specify in the "Notes" field.

- Your choice of NAS software/OS is available on request, including FreeNAS, NAS4Free, OpenMediaVault, or your choice - just specify it in the "Notes" field when you place your order.

- Or, you may choose one of our regular distros, and simply ask for your preferred packages and storage options - Ceph, MooseFS, LizardFS, Samba,NFS, Novell, Apple and any other available configuration requests - just add it in the 'Notes'.

 

This model has been updated with options for Dual Xeon E5-26xx v3 and v4 multicore CPUs - up to 44 cores/up to 110 MB Cache!

At full capacity, this system houses 960 terabytes (16TB x 60 drives). Read our press release.

 

Green means go

The Seagate 16TB and HGST 14TB drives are  Helium-filled - which require far less rotational energy, making them 23-44% more efficient than air-filled drives - and the drives are also lighter (the helium helps, here!), meaning the packing crate has a lower shipping weight as well, saving money on shipping as well as on month-to-month electricity bills - a truly green solution.

Forget Idaho

Your Own Private Cloud is what you really want - and we can provide it for you! Not only can we build and provision your OpenStack config. (from one, to three, to many servers), We can host it for you too! We have colocation Rackspace and/or dedicated servers available! eMail us today for details, info@eracks.com.

 

Any Which Way

The default configuration is a "starter" config, and there are choices available to partially populate your unit, to make it accessible at a lower initial price, and the storage can be increased later by filling the empty drive trays.

For cloud configurations such as OpenStack, CloudStack, Eucalyptus, and others, you may put the number of servers or desired summary in the notes field (eg all-in-one, storage only, etc) or contact us directly for more involved configurations.

Note that other memory configurations, including other types and speeds of RAM are available, including 1600/1866/2133/2400/2666 MHz & higher DDR4, ECC REG, etc - contact us for details and a custom quote.

Western Digital Red, Red Pro, Black, Purple, Blue, or Green drives are also available, emailus for details, at info@eracks.com.

HGST 14TB drives are available (Contact us for SMR vs PMR), and combine HGST's HelioSeal technology with SMR (Shingled Magnetic Recording) for archival, Near-Line Storage (NLS), or other warm or cold-storage applications.

SAS drives and SAS RAID controllers are available with this system. Please email or phone to request a quote.


Features & Specifications

The default configuration includes:

4U Chassis & Power Supply: eRacks/4U-60RHD 2000W Redundant PSU Titanium 80+ certified.

Motherboard: Intel multi-core Xeon v3 or v4 Dual-CPU series DDR4 / IPMI motherboard (Xeon single or quad socket mobo, or Multicore AMD Opteron IPMI motherboards available by custom quote).

Processors: Single, Dual multi-core Xeon series

(AMD Opteron available by custom quote).

Memory: DDR4 / 2133/2400/2666 ECC/REG with v3/v4 Xeon CPU choice available Up to 3TB total RAM available, with larger memory modules, 24x DIMM slots.

Hard Drives: Up to 60 SATA6 / SAS2 Drives (plus two internal SSDs for mirrored OS).

RAID card(s): multi-lane LSI SATA6 / SAS2. RAID options: 0,1,5,6,10,50, & others.

Fans: 5x 8cm hot-swap redundant PWM fans PWM fans.

Optical Drive: Slimline DVDRW or BluRay.

OS: Ubuntu / OpenStack, CloudStack, FreeNAS, NAS4Free, OpenMediaVault / Debian, Ubuntu Linux Server plus packages of your choice, or other open source OS.

Note: Shipping weight will be approximately 180 pounds plus packaging. Packaging will include a wooden frame or complete wooden container, and will be shipped on a pallett.

Please email info@eracks.com or phone to request a custom quote.


Configure eRacks/NAS60

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: $ 16995.00 As Configured: $ 16995.00
Configuration Summary:
Default Configuration
Option Choices More Info Add/Subtract
ChassisNAS4U-60RHD 2000W RPS 30.2in depth
MotherboardeRacks-certified Intel Dual-Xeon NAS motherboard
Xeon Dual-class CPUsIntel Xeon E5-2603 v4 (6 Cores @ 1.70GHz, PScore 5621)
Memory DDR4 ECC / REG4GB DDR4 Memory ECC / REG
Slim Optical DriveSlim BluRay Disc (BD) Burner
RAID ConfigurationRAID 6 (striped with dual parity)
Hard Drive Array1TB WD Gold Enterprise 7200rpm 3.5-inch SATA6 HDD
Mirrored OS Drives250GB Samsung 860 EVO SATA6 SSD
Network Interfaces2x GbE Network Port, RJ45
RAID controller(s)LSI MegaRAID SAS / SATA multiport RAID Controller & hardware
PCInone
Add-onsnone
Operating SystemUbuntu Linux 18.04 LTS Server Edition
Cloud & NAS SoftwareFile server - SMB/CIFS, NFS, SFTP, AFP, DAV, FTP & others on request
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 6514.353 msec
System CPU time 1352.207 msec
Total CPU time 7866.560 msec
Elapsed time 9119.176 msec
Context switches 8 voluntary, 1207 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 0x7fbbeff378b0>
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 22:55:38 MSK
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/rackmount-nas-servers/NAS60/
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': 'rackmount-nas-servers', 'sku': 'NAS60'} None

No cookies

Session data

Variable Value
'prod' {'baseoptions': '', 'baseprice': 16995.0, 'blurb': '<p><img alt="image" ' 'src="/media/images/logos/brands/fullsize/cloudstack-fullsize_small.png" ' 'style="height:51px; width:140px" />Our new flagship&nbsp;<span ' 'style="color:blue">eRacks/NAS60</span> is a 4U rackmount storage ' 'server with 60 removable drive bays with up to<strong> 840TB ' '</strong>of storage.</p>\r\n' '\r\n' '<p>Suitable for cloud storage, NAS/Local LAN usage, media ' 'libraries, or any number of other storage uses, the eRacks/NAS60 is ' 'a truly petascale solution - ten <a href="http://eracks.com/NAS50" ' 'target="_blank" title="Cloud server">eRacks/NAS60</a> servers in a ' 'standard 42u rack gives you 8.4 Petabytes - with room to spare for ' 'a UPS, KVM, Network switch/firewall, or other of eRacks&#39; rack ' 'accessories.</p>', 'category_id': 9529, 'comments': 'Upd 9/25/19 JJW\r\n' '\r\n' 'Updated to CPU v4 & Memory to DDR4 only, increased cost $50 (CPU ' '-$71, RAM +$120).\r\n' '\r\n' '24 JAN 2019,\r\n' 'Asif.\r\n' '\r\n' '\r\n' 'All-new wiith multipliers, etc12/13 JJW\r\n' 'Ram, CPUs, Mobo, drives upd 2/15 JJW\r\n' 'upd 3/3 tweaks JJW\r\n' '\r\n' '$8900 Price is taken from ' 'https://www.aspsys.com/servers/pc/Supermicro-4U-SuperServer-6048R-E1CR60N-p2680.htm ' 'as of Feb 25, 2016, upd 3/24/16', 'cost': 8950.0, 'created': datetime.datetime(2016, 2, 24, 13, 27, 24, 301806), 'description': '<!-- BEGIN NAS50 PRODUCT CONTENT -->\r\n' '<p style="text-align:justify"><img alt="" ' 'src="/images/products/nas50/openstack-logo-small.jpg" ' 'style="float:right; height:89px; width:200px" /></p>\r\n' '\r\n' '<p style="text-align:justify">Our new flagship <a ' 'href="http://eracks.com/products/storage-servers-nas/NAS60/"><em><strong>eRacks/NAS60</strong></em></a> ' 'is a 4U rackmount storage server with 60 removable drive bays ' 'with up to<strong> 960TB </strong>of storage with ' '<strong>16TB</strong> Hard Drives.</p>\r\n' '\r\n' '<p style="text-align:justify">&nbsp;</p>\r\n' '\r\n' '<p style="text-align:justify"><strong><img alt="" ' 'src="/media/images/logos/brands/fullsize/cloudstack-fullsize_small.png" ' 'style="float:left; height:51px; width:140px" ' '/>&nbsp;Cloudy</strong></p>\r\n' '\r\n' '<p style="text-align:justify"><a ' 'href="http://eracks.com/products/storage-servers-nas/NAS60/"><em><strong>eRacks/NAS60</strong></em></a> ' 'is a powerful and customizable cloud storage server ' 'solution.&nbsp;&nbsp;It is also a great choice for NAS/local ' 'LAN&nbsp;usage, media libraries, many other applications ' 'which require a large volume of data storage capacity.</p>\r\n' '\r\n' '<p style="text-align:justify">&nbsp;</p>\r\n' '\r\n' '<p ' 'style="text-align:justify"><strong>Pre-provisioned</strong></p>\r\n' '\r\n' '<p style="text-align:justify"><img alt="" ' 'src="/images/products/nas50/samba_logo.jpeg" ' 'style="float:right; height:48px; width:179px" />In keeping ' 'with eRacks&#39; signature service of saving you time and ' 'money by pre-configuring your system to be as turnkey as ' 'possible, eRacks can preinstall and configure your server ' 'three ways:</p>\r\n' '\r\n' '<p style="text-align:justify">&nbsp;</p>\r\n' '\r\n' '<p style="text-align:justify">- Your choice of Cloud software ' 'is available, including OpenStack, CloudStack, Eucalyptus, ' 'OpenNebula, ProxMox, or other - just specify in the ' '&quot;<strong><em>Notes</em></strong>&quot; field.</p>\r\n' '\r\n' '<p style="text-align:justify">- Your choice of NAS ' 'software/OS is available on request, including <a ' 'href="http://www.freenas.org/">FreeNAS</a>, <a ' 'href="https://www.nas4free.org/">NAS4Free</a>, <a ' 'href="https://www.openmediavault.org/">OpenMediaVault</a>, or ' 'your choice - just specify it in the ' '&quot;<strong><em>Notes</em></strong>&quot; field when you ' 'place your order.</p>\r\n' '\r\n' '<p style="text-align:justify">- Or, you may choose one of our ' 'regular distros, and simply ask for your preferred packages ' 'and storage options - Ceph, MooseFS, <a ' 'href="http://lizardfs.com/" target="_blank">LizardFS</a>, ' 'Samba,NFS, Novell, Apple and any other available ' 'configuration requests - just add it in the ' '&#39;<em><strong>Notes</strong></em>&#39;.</p>\r\n' '\r\n' '<p style="text-align:justify">&nbsp;</p>\r\n' '\r\n' '<p style="text-align:justify"><img alt="" ' 'src="/images/products/nas50/intele5_chip.png" ' 'style="float:left; height:66px; width:99px" />This model has ' 'been updated with options for Dual Xeon E5-26xx v3&nbsp;and ' 'v4&nbsp;multicore CPUs - up to 44&nbsp;cores/up to 110 MB ' 'Cache!</p>\r\n' '\r\n' '<p style="text-align:justify">At full capacity, this system ' 'houses 960 terabytes (16TB x 60 drives). Read our <a ' 'href="https://eracks.com/admin/products/product/58172/change/?_changelist_filters=q%3DNAS">press ' 'release.</a></p>\r\n' '\r\n' '<p style="text-align:justify">&nbsp;</p>\r\n' '\r\n' '<p style="text-align:justify"><strong>Green means ' 'go</strong></p>\r\n' '\r\n' '<p style="text-align:justify">The <strong>Seagate ' '16TB</strong> and <strong>HGST</strong> 14TB drives are&nbsp; ' '<a ' 'href="http://www.hgst.com/products/hard-drives/ultrastar-he10">Helium-filled</a> ' '- which require far less rotational energy, making them ' '23-44% more efficient than air-filled drives - and the drives ' 'are also lighter (the helium helps, here!), meaning the ' 'packing crate has a lower shipping weight as well, saving ' 'money on shipping as well as on month-to-month electricity ' 'bills - a truly green solution.</p>\r\n' '\r\n' '<p style="text-align:justify"><strong>Forget ' 'Idaho</strong></p>\r\n' '\r\n' '<p style="text-align:justify"><img alt="" ' 'src="/images/products/nas50/freenas.jpg" style="float:right; ' 'height:95px; width:100px" />Your Own Private Cloud is what ' 'you really want - and we can provide it for you! Not only can ' 'we build and provision your OpenStack config. (from one, to ' 'three, to many servers), <strong>We can host it for you too! ' 'We have colocation Rackspace and/or dedicated servers ' 'available!</strong> eMail us today for details, ' '<em><strong><a ' 'href="mailto:info@eracks.com">info@eracks.com</a></strong></em>.</p>\r\n' '\r\n' '<p style="text-align:justify">&nbsp;</p>\r\n' '\r\n' '<p style="text-align:justify"><strong>Any Which ' 'Way</strong></p>\r\n' '\r\n' '<p style="text-align:justify">The default configuration is a ' '&quot;starter&quot; config, and there are choices available ' 'to partially populate your unit, to make it accessible at a ' 'lower initial price, and the storage can be increased later ' 'by filling the empty drive trays.</p>\r\n' '\r\n' '<p style="text-align:justify"><img alt="" ' 'src="/media/system_components/os/os_linux.jpg" ' 'style="float:left; height:110px; width:150px" />For cloud ' 'configurations such as OpenStack, CloudStack, Eucalyptus, and ' 'others, you may put the number of servers or desired summary ' 'in the notes field (eg all-in-one, storage only, etc) or ' 'contact us directly for more involved configurations.</p>\r\n' '\r\n' '<p style="text-align:justify">Note that other memory ' 'configurations, including other types and speeds of RAM are ' 'available, including 1600/1866/2133/2400/2666 MHz &amp; ' 'higher DDR4, ECC REG, etc - contact us for details and a ' 'custom quote.</p>\r\n' '\r\n' '<p style="text-align:justify">Western Digital Red, Red Pro, ' 'Black, Purple, Blue, or Green drives are also available, ' 'emailus for details, at <a ' 'href="mailto:info@eracks.com"><strong><em>info@eracks.com</em></strong></a>.</p>\r\n' '\r\n' '<p style="text-align:justify">HGST 14TB drives are available ' '(Contact us for SMR vs PMR), and combine HGST&#39;s HelioSeal ' 'technology with SMR (Shingled Magnetic Recording) for ' 'archival, Near-Line Storage (NLS), or other warm or ' 'cold-storage applications.</p>\r\n' '\r\n' '<p style="text-align:justify">SAS drives and SAS RAID ' 'controllers are available with this system. Please ' '<em><strong><a ' 'href="mailto:info@eracks.com">email</a></strong></em> or ' 'phone to request a quote.</p>', 'features': '<p style="text-align:justify">The default configuration ' 'includes:</p>\r\n' '\r\n' '<p style="text-align:justify"><strong>4U Chassis &amp; Power ' 'Supply: </strong>eRacks/4U-60RHD 2000W Redundant PSU Titanium ' '80+ certified.</p>\r\n' '\r\n' '<p ' 'style="text-align:justify"><strong>Motherboard:&nbsp;</strong>Intel ' 'multi-core Xeon v3&nbsp;or v4&nbsp;Dual-CPU series DDR4 / IPMI ' 'motherboard (Xeon single or quad socket mobo, or Multicore AMD ' 'Opteron IPMI motherboards available by custom quote).</p>\r\n' '\r\n' '<p ' 'style="text-align:justify"><strong>Processors:&nbsp;</strong>Single, ' 'Dual multi-core Xeon series <img alt="" ' 'src="/media/system_components/os/ubuntu.png" style="float:right; ' 'height:112px; width:200px" /></p>\r\n' '\r\n' '<p style="text-align:justify">(AMD Opteron available by custom ' 'quote).</p>\r\n' '\r\n' '<p style="text-align:justify"><strong>Memory: </strong>DDR4 / ' '2133/2400/2666 ECC/REG with v3/v4 Xeon CPU choice available Up ' 'to 3TB total RAM available, with larger memory modules,&nbsp;24x ' 'DIMM slots.</p>\r\n' '\r\n' '<p style="text-align:justify"><strong>Hard Drives: </strong>Up ' 'to 60 SATA6 / SAS2 Drives (plus two internal SSDs for mirrored ' 'OS).</p>\r\n' '\r\n' '<p style="text-align:justify"><strong>RAID</strong> card(s): ' 'multi-lane LSI SATA6 / SAS2. RAID options: 0,1,5,6,10,50, &amp; ' 'others.</p>\r\n' '\r\n' '<p style="text-align:justify"><strong>Fans</strong>: 5x 8cm ' 'hot-swap redundant PWM fans PWM fans.</p>\r\n' '\r\n' '<p style="text-align:justify"><strong>Optical Drive: ' '</strong>Slimline DVDRW or BluRay.</p>\r\n' '\r\n' '<p style="text-align:justify"><strong>OS: </strong>Ubuntu / ' 'OpenStack,<strong> </strong>CloudStack, FreeNAS, NAS4Free, ' 'OpenMediaVault / Debian,<strong>&nbsp;</strong>Ubuntu Linux ' 'Server plus packages of your choice,&nbsp;or other open source ' 'OS.</p>\r\n' '\r\n' '<p style="text-align:justify"><strong>Note: </strong>Shipping ' 'weight will be approximately 180 pounds plus packaging. ' 'Packaging will include a wooden frame or complete wooden ' 'container, and will be shipped on a pallett.</p>\r\n' '\r\n' '<p style="text-align:justify"><strong><span ' 'style="font-family:source sans pro,sans-serif; ' 'font-size:12pt"><em>Please email <a ' 'href="mailto:info@eracks.com"><span ' 'style="color:windowtext">info@eracks.com</span></a> or phone to ' 'request a custom quote</em>.</span></strong></p>', 'id': 58172, 'image': <FileObject: images/products/nas60/new/nas60_front_large.jpg>, 'link': '', 'meta_description': 'Suitable for cloud storage, NAS/Local LAN usage, media ' 'libraries, or any number of other storage uses, the ' 'eRacks/NAS60 is a truly petascale solution - 10 ' 'eRacks/NAS60 servers in a standard 42u rack gives you ' '8.4 Petabytes - with room to spare for a UPS, KVM, ' "Network switch/firewall, or other of eRacks' rack " 'accessories.', 'meta_keywords': 'Arch Linux, LizardFS,Ceph, MooseFS,Samba,NFS,\r\n' 'Samba, FreeNAS, NAS4Free, OpenMediaVault, NAS, NAS Storage, ' 'Network-attached storage,\r\n' 'Cloud Storage, near-line storage, SDS, Software-defined ' 'Storage, Video Storage, Surveillance Storage', 'meta_title': 'Our new flagship eRacks/NAS60 is a 4U rackmount storage server ' 'with 60 removable drive bays with up to 840TB of storage.', 'name': 'eRacks/NAS60', 'notes': '', 'opts': OrderedDict([('58178_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbecffd370>, 'allowed_quantities': '', 'choices': {58190: {'blurb': '', 'choicecategory_id': 43891, 'comment': 'SM, they assemble', 'cost': 3500.0, 'created': datetime.datetime(2016, 2, 25, 2, 54, 50, 637974), 'id': 58190, 'multiplier': 0, 'name': 'NAS4U-60RHD 2000W RPS ' '30.2in depth', 'price': None, 'published': True, 'sortorder': 160, 'source': '', 'updated': datetime.datetime(2016, 9, 24, 19, 25, 18, 831292)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 2, 24, 13, 27, 24, 349841), 'defaultchoice_id': 58190, 'id': 58178, 'name': 'Chassis', 'option_id': 9, 'product_id': 58172, 'published': True, 'qty': 1, 'required': True, 'single': True, 'updated': datetime.datetime(2016, 2, 25, 3, 0, 0, 848188)}), ('58186_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbecffd820>, 'allowed_quantities': '', 'choices': {42290: {'blurb': '', 'choicecategory_id': 43903, 'comment': 'Updated on 24 JAN ' '2019,\r\n' 'Asif.', 'cost': 400.0, 'created': datetime.datetime(2009, 4, 3, 13, 35, 13, 888878), 'id': 42290, 'multiplier': 0, 'name': 'eRacks-certified Intel ' 'Dual-Xeon NAS motherboard', 'price': None, 'published': True, 'sortorder': 1310, 'source': '', 'updated': datetime.datetime(2019, 3, 3, 21, 55, 24, 301155)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 2, 24, 13, 27, 24, 377116), 'defaultchoice_id': 42290, 'id': 58186, 'name': 'Motherboard', 'option_id': 6520, 'product_id': 58172, 'published': True, 'qty': 1, 'required': True, 'single': True, 'updated': datetime.datetime(2016, 2, 25, 2, 10, 12, 907810)}), ('59753_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbed0920a0>, 'allowed_quantities': '1,2', 'choices': {56430: {'blurb': '18 cores, 145 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Announced: Q3'14\r\n" 'Upd 2/16/15 JJW - RCP ' '$4115 from ' 'Wikipedia:\r\n' 'http://en.wikipedia.org/wiki/List_of_Intel_Xeon_microprocessors\r\n' 'But street price $4400 ' 'from Google ' 'Shopping:\r\n' 'https://www.google.com/search?client=ubuntu&channel=fs&q=Xeon+E5-2698+v3&ie=utf-8&oe=utf-8#channel=fs&tbm=shop&q=Xeon+E5-2699+v3\r\n' 'Tray price is 3967\r\n' 'JJW', 'cost': 4400.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 42, 880300), 'id': 56430, 'multiplier': 0, 'name': 'Intel Xeon E5-2699 v3 ' '(45M Cache, 2.30 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 29, 507905)}, 56431: {'blurb': '16 cores, 135 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Announced: Q3'14\r\n" 'Upd 2/16/15 JJW - RCP ' '$3226 from ' 'Wikipedia:\r\n' 'http://en.wikipedia.org/wiki/List_of_Intel_Xeon_microprocessors#Xeon_E7-88xx_v2_.28octa-processor.29\r\n' 'But street price $3800 ' 'from Google ' 'Shopping:\r\n' 'https://www.google.com/search?client=ubuntu&channel=fs&q=Xeon+E5-2698+v3&ie=utf-8&oe=utf-8#q=Xeon+E5-2698+v3&channel=fs&tbm=shop\r\n' 'Tray price is closer ' 'to 3250\r\n' 'JJW', 'cost': 3800.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 42, 950065), 'id': 56431, 'multiplier': 0, 'name': 'Intel Xeon E5-2698 v3 ' '(40M Cache, 2.30 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 28, 920791)}, 56432: {'blurb': '14 cores, 145 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Launched: Q3'14", 'cost': 2706.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 42, 979856), 'id': 56432, 'multiplier': 0, 'name': 'Intel Xeon E5-2697 v3 ' '(35M Cache, 2.60 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 26, 746769)}, 56433: {'blurb': '14 cores, 120 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Launched: Q3'14", 'cost': 2428.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 43, 4699), 'id': 56433, 'multiplier': 0, 'name': 'Intel Xeon E5-2695 v3 ' '(35M Cache, 2.30 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 26, 534072)}, 56434: {'blurb': '12 cores, 135 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Launched: Q3'14", 'cost': 2094.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 43, 30445), 'id': 56434, 'multiplier': 0, 'name': 'Intel Xeon E5-2690 v3 ' '(30M Cache, 2.60 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 26, 145266)}, 56436: {'blurb': '14 cores, 120 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Launched: Q3'14", 'cost': 1846.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 43, 79439), 'id': 56436, 'multiplier': 0, 'name': 'Intel Xeon E5-2683 v3 ' '(35M Cache, 2.00 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 25, 568388)}, 56437: {'blurb': '12 cores, 120 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Launched: Q3'14", 'cost': 1749.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 43, 104838), 'id': 56437, 'multiplier': 0, 'name': 'Intel Xeon E5-2680 v3 ' '(30M Cache, 2.50 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 25, 477412)}, 56438: {'blurb': '12 cores, 120 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Launched: Q3'14", 'cost': 1593.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 43, 131480), 'id': 56438, 'multiplier': 0, 'name': 'Intel Xeon E5-2670 v3 ' '(30M Cache, 2.30 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 25, 44198)}, 56440: {'blurb': '10 cores, 105 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Launched: Q3'14", 'cost': 1449.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 43, 180814), 'id': 56440, 'multiplier': 0, 'name': 'Intel Xeon E5-2660 v3 ' '(25M Cache, 2.60 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 24, 618318)}, 56442: {'blurb': '10 cores, 105 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Launched: Q3'14", 'cost': 1171.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 43, 231413), 'id': 56442, 'multiplier': 0, 'name': 'Intel Xeon E5-2650 v3 ' '(25M Cache, 2.30 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 23, 502726)}, 56443: {'blurb': '6 cores, 135 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Launched: Q3'14", 'cost': 1552.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 43, 255611), 'id': 56443, 'multiplier': 0, 'name': 'Intel Xeon E5-2643 v3 ' '(20M Cache, 3.40 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 24, 868320)}, 56444: {'blurb': '8 cores, 90 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Launched: Q3'14", 'cost': 944.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 43, 280883), 'id': 56444, 'multiplier': 0, 'name': 'Intel Xeon E5-2640 v3 ' '(20M Cache, 2.60 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 22, 747854)}, 56445: {'blurb': '4 cores, 135 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Launched: Q3'14", 'cost': 996.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 43, 303816), 'id': 56445, 'multiplier': 0, 'name': 'Intel Xeon E5-2637 v3 ' '(15M Cache, 3.50 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 22, 876387)}, 56447: {'blurb': '8 cores, 85 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Launched: Q3'14", 'cost': 671.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 43, 356462), 'id': 56447, 'multiplier': 0, 'name': 'Intel Xeon E5-2630 v3 ' '(20M Cache, 2.40 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 21, 698838)}, 56448: {'blurb': '4 cores, 105 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Launched: Q3'14", 'cost': 444.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 43, 387763), 'id': 56448, 'multiplier': 0, 'name': 'Intel Xeon E5-2623 v3 ' '(10M Cache, 3.00 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 19, 179432)}, 56449: {'blurb': '6 cores, 85 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Launched: Q3'14", 'cost': 422.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 43, 415511), 'id': 56449, 'multiplier': 0, 'name': 'Intel Xeon E5-2620 v3 ' '(15M Cache, 2.40 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 19, 42053)}, 56450: {'blurb': '6 cores, 85 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Launched: Q3'14", 'cost': 306.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 43, 437240), 'id': 56450, 'multiplier': 0, 'name': 'Intel Xeon E5-2609 v3 ' '(15M Cache, 1.90 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 17, 163614)}, 56451: {'blurb': '6 cores, 85 W', 'choicecategory_id': 56429, 'comment': 'Scraped from ark, ' "Launched: Q3'14", 'cost': 217.0, 'created': datetime.datetime(2015, 2, 10, 14, 40, 43, 464989), 'id': 56451, 'multiplier': 0, 'name': 'Intel Xeon E5-2603 v3 ' '(15M Cache, 1.60 GHz)', 'price': 0.0, 'published': True, 'sortorder': 1300, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 51, 14, 180752)}, 59086: {'blurb': 'Intel Xeon E5-2658 v4 @ ' '2.30GHz - Server CPUs - ' 'PScore 16290 - 14 Cores ' '- 28 Threads - 35 MB ' 'cache', 'choicecategory_id': 58812, 'comment': 'PScore 16290 - ' "Released : Q1'16", 'cost': 1832.0, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 537956), 'id': 59086, 'multiplier': 0, 'name': 'Intel Xeon E5-2658 v4 (14 ' 'Cores @ 2.30GHz, PScore ' '16290)', 'price': None, 'published': True, 'sortorder': 42658, 'source': '', 'updated': datetime.datetime(2018, 7, 26, 10, 28, 44, 734175)}, 59087: {'blurb': 'Intel Xeon E5-2660 v4 @ ' '2.00GHz - Server CPUs - ' 'PScore 18816 - 14 Cores ' '- 28 Threads - 35 MB ' 'cache', 'choicecategory_id': 58812, 'comment': 'PScore 18816 - ' "Released : Q1'16", 'cost': 1498.77, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 546321), 'id': 59087, 'multiplier': 0, 'name': 'Intel Xeon E5-2660 v4 (14 ' 'Cores @ 2.00GHz, PScore ' '18816)', 'price': 0.0, 'published': True, 'sortorder': 42660, 'source': '', 'updated': datetime.datetime(2018, 7, 26, 10, 27, 10, 114244)}, 59089: {'blurb': 'Intel Xeon E5-2695 v4 @ ' '2.10GHz - Server CPUs - ' 'PScore 20258 - 18 Cores ' '- 36 Threads - 45 MB ' 'cache', 'choicecategory_id': 58812, 'comment': 'PScore 20258 - ' "Released : Q1'16", 'cost': 2485.5, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 562610), 'id': 59089, 'multiplier': 0, 'name': 'Intel Xeon E5-2695 v4 (18 ' 'Cores @ 2.10GHz, PScore ' '20258)', 'price': 0.0, 'published': True, 'sortorder': 42695, 'source': '', 'updated': datetime.datetime(2018, 7, 26, 10, 30, 13, 903874)}, 59090: {'blurb': 'Intel Xeon E5-2699 v4 @ ' '2.20GHz - Server CPUs - ' 'PScore 23362 - 22 Cores ' '- 44 Threads - 55 MB ' 'cache', 'choicecategory_id': 58812, 'comment': 'PScore 23362 - ' "Released : Q1'16", 'cost': 4115.0, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 570754), 'id': 59090, 'multiplier': 0, 'name': 'Intel Xeon E5-2699 v4 (22 ' 'Cores @ 2.20GHz, PScore ' '23362)', 'price': None, 'published': True, 'sortorder': 42699, 'source': '', 'updated': datetime.datetime(2018, 7, 26, 10, 30, 45, 751072)}, 59092: {'blurb': 'Intel Xeon E5-2680 v4 @ ' '2.40GHz - Server CPUs - ' 'PScore 19922 - 14 Cores ' '- 28 Threads - 35 MB ' 'cache', 'choicecategory_id': 58812, 'comment': 'PScore 19922 - ' "Released : Q1'16", 'cost': 1791.99, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 587050), 'id': 59092, 'multiplier': 0, 'name': 'Intel Xeon E5-2680 v4 (14 ' 'Cores @ 2.40GHz, PScore ' '19922)', 'price': 0.0, 'published': True, 'sortorder': 42680, 'source': '', 'updated': datetime.datetime(2018, 7, 26, 10, 28, 32, 474017)}, 59093: {'blurb': 'Intel Xeon E5-2697 v4 @ ' '2.30GHz - Server CPUs - ' 'PScore 21830 - 18 Cores ' '- 36 Threads - 45 MB ' 'cache', 'choicecategory_id': 58812, 'comment': 'PScore 21830 - ' "Released : Q1'16", 'cost': 2716.45, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 595183), 'id': 59093, 'multiplier': 0, 'name': 'Intel Xeon E5-2697 v4 (18 ' 'Cores @ 2.30GHz, PScore ' '21830)', 'price': 0.0, 'published': True, 'sortorder': 42697, 'source': '', 'updated': datetime.datetime(2018, 7, 26, 10, 30, 25, 113466)}, 59094: {'blurb': 'Intel Xeon E5-2698 v4 @ ' '2.20GHz - Server CPUs - ' 'PScore 21789 - 20 Cores ' '- 40 Threads - 50 MB ' 'cache', 'choicecategory_id': 58812, 'comment': 'PScore 21789 - ' "Released : Q1'16", 'cost': 3226.0, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 604337), 'id': 59094, 'multiplier': 0, 'name': 'Intel Xeon E5-2698 v4 (20 ' 'Cores @ 2.20GHz, PScore ' '21789)', 'price': None, 'published': True, 'sortorder': 42698, 'source': '', 'updated': datetime.datetime(2018, 7, 26, 10, 30, 35, 948814)}, 59095: {'blurb': 'Intel Xeon E5-2603 v4 @ ' '1.70GHz - Server CPUs - ' 'PScore 5621 - 6 Cores - ' '6 Threads - 15 MB cache', 'choicecategory_id': 58812, 'comment': 'PScore 5621 - ' "Released : Q1'16", 'cost': 228.0, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 616697), 'id': 59095, 'multiplier': 0, 'name': 'Intel Xeon E5-2603 v4 (6 ' 'Cores @ 1.70GHz, PScore ' '5621)', 'price': 0.0, 'published': True, 'sortorder': 42603, 'source': '', 'updated': datetime.datetime(2019, 1, 12, 23, 54, 17, 187437)}, 59097: {'blurb': 'Intel Xeon E5-2667 v4 @ ' '3.20GHz - Server CPUs - ' 'PScore 16654 - 8 Cores - ' '16 Threads - 25 MB cache', 'choicecategory_id': 58812, 'comment': 'PScore 16654 - ' "Released : Q1'16", 'cost': 2057.0, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 635853), 'id': 59097, 'multiplier': 0, 'name': 'Intel Xeon E5-2667 v4 (8 ' 'Cores @ 3.20GHz, PScore ' '16654)', 'price': None, 'published': True, 'sortorder': 42667, 'source': '', 'updated': datetime.datetime(2018, 7, 26, 10, 29, 29, 728911)}, 59098: {'blurb': 'Intel Xeon E5-2623 v4 @ ' '2.60GHz - Server CPUs - ' 'PScore 8061 - 4 Cores - ' '8 Threads - 10 MB cache', 'choicecategory_id': 58812, 'comment': 'PScore 8061 - ' "Released : Q1'16", 'cost': 444.0, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 644210), 'id': 59098, 'multiplier': 0, 'name': 'Intel Xeon E5-2623 v4 (4 ' 'Cores @ 2.60GHz, PScore ' '8061)', 'price': None, 'published': True, 'sortorder': 42623, 'source': '', 'updated': datetime.datetime(2018, 7, 26, 10, 23, 15, 121890)}, 59099: {'blurb': 'Intel Xeon E5-2630 v4 @ ' '2.20GHz - Server CPUs - ' 'PScore 13981 - 10 Cores ' '- 20 Threads - 25 MB ' 'cache', 'choicecategory_id': 58812, 'comment': 'PScore 13981 - ' "Released : Q1'16", 'cost': 654.42, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 652455), 'id': 59099, 'multiplier': 0, 'name': 'Intel Xeon E5-2630 v4 (10 ' 'Cores @ 2.20GHz, PScore ' '13981)', 'price': 0.0, 'published': True, 'sortorder': 42630, 'source': '', 'updated': datetime.datetime(2018, 7, 26, 10, 23, 38, 272789)}, 59100: {'blurb': 'Intel Xeon E5-2637 v4 @ ' '3.50GHz - Server CPUs - ' 'PScore 10052 - 4 Cores - ' '8 Threads - 15 MB cache', 'choicecategory_id': 58812, 'comment': 'PScore 10052 - ' "Released : Q1'16", 'cost': 996.0, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 661386), 'id': 59100, 'multiplier': 0, 'name': 'Intel Xeon E5-2637 v4 (4 ' 'Cores @ 3.50GHz, PScore ' '10052)', 'price': None, 'published': True, 'sortorder': 42637, 'source': '', 'updated': datetime.datetime(2018, 7, 26, 10, 26, 13, 812974)}, 59101: {'blurb': 'Intel Xeon E5-2640 v4 @ ' '2.40GHz - Server CPUs - ' 'PScore 15314 - 10 Cores ' '- 20 Threads - 25 MB ' 'cache', 'choicecategory_id': 58812, 'comment': 'PScore 15314 - ' "Released : Q1'16", 'cost': 903.64, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 669607), 'id': 59101, 'multiplier': 0, 'name': 'Intel Xeon E5-2640 v4 (10 ' 'Cores @ 2.40GHz, PScore ' '15314)', 'price': 0.0, 'published': True, 'sortorder': 42640, 'source': '', 'updated': datetime.datetime(2018, 7, 26, 10, 25, 58, 308748)}, 59102: {'blurb': 'Intel Xeon E5-2643 v4 @ ' '3.40GHz - Server CPUs - ' 'PScore 13395 - 6 Cores - ' '12 Threads - 20 MB cache', 'choicecategory_id': 58812, 'comment': 'PScore 13395 - ' "Released : Q1'16", 'cost': 1552.0, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 677805), 'id': 59102, 'multiplier': 0, 'name': 'Intel Xeon E5-2643 v4 (6 ' 'Cores @ 3.40GHz, PScore ' '13395)', 'price': None, 'published': True, 'sortorder': 42643, 'source': '', 'updated': datetime.datetime(2018, 7, 26, 10, 28, 23, 9029)}, 59103: {'blurb': 'Intel Xeon E5-2609 v4 @ ' '1.70GHz - Server CPUs - ' 'PScore 6910 - 8 Cores - ' '8 Threads - 20 MB cache', 'choicecategory_id': 58812, 'comment': 'PScore 6910 - ' "Released : Q1'16", 'cost': 313.93, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 699212), 'id': 59103, 'multiplier': 0, 'name': 'Intel Xeon E5-2609 v4 (8 ' 'Cores @ 1.70GHz, PScore ' '6910)', 'price': 0.0, 'published': True, 'sortorder': 42609, 'source': '', 'updated': datetime.datetime(2018, 7, 26, 10, 22, 28, 774894)}, 59104: {'blurb': 'Intel Xeon E5-2620 v4 @ ' '2.10GHz - Server CPUs - ' 'PScore 11427 - 8 Cores - ' '16 Threads - 20 MB cache', 'choicecategory_id': 58812, 'comment': 'PScore 11427 - ' "Released : Q1'16", 'cost': 405.38, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 721049), 'id': 59104, 'multiplier': 0, 'name': 'Intel Xeon E5-2620 v4 (8 ' 'Cores @ 2.10GHz, PScore ' '11427)', 'price': 0.0, 'published': True, 'sortorder': 42620, 'source': '', 'updated': datetime.datetime(2018, 7, 26, 10, 22, 42, 907586)}, 59116: {'blurb': 'Intel Xeon E5-2650 v4 @ ' '2.20GHz - Server CPUs - ' 'PScore 16142 - 12 Cores ' '- 24 Threads - 30 MB ' 'cache', 'choicecategory_id': 58812, 'comment': 'PScore 16142 - ' "Released : Q1'16", 'cost': 1199.61, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 861591), 'id': 59116, 'multiplier': 0, 'name': 'Intel Xeon E5-2650 v4 (12 ' 'Cores @ 2.20GHz, PScore ' '16142)', 'price': 0.0, 'published': True, 'sortorder': 42650, 'source': '', 'updated': datetime.datetime(2018, 7, 26, 10, 26, 26, 725475)}, 59117: {'blurb': 'Intel Xeon E5-2690 v4 @ ' '2.60GHz - Server CPUs - ' 'PScore 21490 - 14 Cores ' '- 28 Threads - 35 MB ' 'cache', 'choicecategory_id': 58812, 'comment': 'PScore 21490 - ' "Released : Q1'16", 'cost': 2049.0, 'created': datetime.datetime(2017, 10, 13, 5, 16, 48, 869703), 'id': 59117, 'multiplier': 0, 'name': 'Intel Xeon E5-2690 v4 (14 ' 'Cores @ 2.60GHz, PScore ' '21490)', 'price': 0.0, 'published': True, 'sortorder': 42690, 'source': '', 'updated': datetime.datetime(2018, 7, 26, 10, 28, 57, 245529)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2019, 1, 25, 11, 18, 36, 519023), 'defaultchoice_id': 59095, 'id': 59753, 'name': 'Xeon Dual-class CPUs', 'option_id': 58827, 'product_id': 58172, 'published': True, 'qty': 1, 'required': True, 'single': False, 'updated': datetime.datetime(2019, 1, 25, 11, 19, 33, 909614)}), ('59752_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbed092130>, 'allowed_quantities': '4,8,16,24', 'choices': {56620: {'blurb': 'Motherboard & overall ' 'config determines speed ' 'options - if you have a ' 'requirement, indicate it ' 'in the Notes field', 'choicecategory_id': 56619, 'comment': 'speed depends on mobo, ' 'configuration, & total ' 'capacity', 'cost': 65.0, 'created': datetime.datetime(2015, 2, 17, 20, 49, 37, 426233), 'id': 56620, 'multiplier': 0, 'name': '4GB DDR4 Memory ECC / REG', 'price': 0.0, 'published': True, 'sortorder': 1305, 'source': '', 'updated': datetime.datetime(2018, 4, 8, 14, 36, 29, 360263)}, 56621: {'blurb': 'Motherboard & overall ' 'config determines speed ' 'options - if you have a ' 'requirement, indicate it ' 'in the Notes field', 'choicecategory_id': 56619, 'comment': 'speed depends on mobo, ' 'configuration, & total ' 'capacity', 'cost': 115.0, 'created': datetime.datetime(2015, 2, 17, 20, 49, 37, 445673), 'id': 56621, 'multiplier': 0, 'name': '8GB DDR4 Memory ECC / REG', 'price': 0.0, 'published': True, 'sortorder': 1305, 'source': '', 'updated': datetime.datetime(2018, 4, 8, 14, 36, 37, 58273)}, 56622: {'blurb': 'Motherboard & overall ' 'config determines speed ' 'options - if you have a ' 'requirement, indicate it ' 'in the Notes field', 'choicecategory_id': 56619, 'comment': 'speed depends on mobo, ' 'configuration, & total ' 'capacity', 'cost': 220.0, 'created': datetime.datetime(2015, 2, 17, 20, 49, 37, 462630), 'id': 56622, 'multiplier': 0, 'name': '16GB DDR4 Memory ECC / ' 'REG', 'price': 0.0, 'published': True, 'sortorder': 1305, 'source': '', 'updated': datetime.datetime(2018, 4, 8, 14, 36, 45, 39432)}, 56623: {'blurb': 'Motherboard & overall ' 'config determines speed ' 'options - if you have a ' 'requirement, indicate it ' 'in the Notes field', 'choicecategory_id': 56619, 'comment': 'speed depends on mobo, ' 'configuration, & total ' 'capacity', 'cost': 550.0, 'created': datetime.datetime(2015, 2, 17, 20, 49, 37, 478911), 'id': 56623, 'multiplier': 0, 'name': '32GB DDR4 Memory ECC / ' 'REG', 'price': 0.0, 'published': True, 'sortorder': 1305, 'source': '', 'updated': datetime.datetime(2018, 4, 8, 14, 36, 53, 448784)}, 56624: {'blurb': 'Motherboard & overall ' 'config determines speed ' 'options - if you have a ' 'requirement, indicate it ' 'in the Notes field', 'choicecategory_id': 56619, 'comment': 'speed depends on mobo, ' 'configuration, & total ' 'capacity', 'cost': 1050.0, 'created': datetime.datetime(2015, 2, 17, 20, 49, 37, 495589), 'id': 56624, 'multiplier': 0, 'name': '64GB DDR4 Memory ECC / ' 'REG', 'price': 0.0, 'published': True, 'sortorder': 1305, 'source': '', 'updated': datetime.datetime(2018, 4, 8, 14, 37, 2, 100935)}, 59225: {'blurb': 'Motherboard & overall ' 'config determines speed ' 'options - if you have a ' 'requirement, indicate it ' 'in the Notes field', 'choicecategory_id': 56619, 'comment': 'Crucial 128GB ' 'DDR4-2666 LRDIMM ( ' 'http://www.crucial.com/usa/en/ct128g4zfe426s), ' 'Price: $3,999\r\n' 'Samsung 128GB DDR4 ' 'Registered ECC ' 'PC4-21300 2666MHz ' 'Memory ' '(http://www.priceblaze.com/m386aak40b40-cwd7q.html), ' 'Price: $4,355\r\n' '\r\n' 'Asif,\r\n' '21 Mar 2018', 'cost': 3999.0, 'created': datetime.datetime(2018, 3, 11, 10, 55, 36, 524433), 'id': 59225, 'multiplier': 0, 'name': '128GB 3DS LRDIMMD DDR4 ' 'ECC / REG Memory', 'price': 0.0, 'published': True, 'sortorder': 1305, 'source': '', 'updated': datetime.datetime(2018, 3, 21, 8, 29, 10, 827974)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2019, 1, 25, 11, 18, 36, 515709), 'defaultchoice_id': 56620, 'id': 59752, 'name': 'Memory DDR4 ECC / REG', 'option_id': 58362, 'product_id': 58172, 'published': True, 'qty': 1, 'required': True, 'single': False, 'updated': datetime.datetime(2019, 1, 25, 11, 25, 3, 577135)}), ('58182_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbed0921c0>, 'allowed_quantities': '', 'choices': {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)}, 33139: {'blurb': '', 'choicecategory_id': 43894, 'comment': '', 'cost': 30.0, 'created': datetime.datetime(2006, 1, 24, 20, 0, 17), 'id': 33139, 'multiplier': None, 'name': 'Slim DVD ', 'price': None, 'published': True, 'sortorder': 400, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 1, 254929)}, 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, 2, 24, 13, 27, 24, 363620), 'defaultchoice_id': 44729, 'id': 58182, 'name': 'Slim Optical Drive', 'option_id': 56627, 'product_id': 58172, 'published': True, 'qty': 1, 'required': True, 'single': False, 'updated': datetime.datetime(2016, 2, 25, 3, 12, 40, 287783)}), ('58185_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbed092250>, 'allowed_quantities': '', 'choices': {9279: {'blurb': '', 'choicecategory_id': 43910, 'comment': None, 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 9279, 'multiplier': None, 'name': 'none (JBOD)', 'price': None, 'published': True, 'sortorder': 3000, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 20, 665974)}, 11961: {'blurb': '', 'choicecategory_id': 43910, 'comment': None, 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 11961, 'multiplier': None, 'name': 'RAID 0 (striping)', 'price': None, 'published': True, 'sortorder': 3010, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 21, 259280)}, 11962: {'blurb': '', 'choicecategory_id': 43910, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 11962, 'multiplier': None, 'name': 'RAID 1 (mirroring)', 'price': None, 'published': True, 'sortorder': 3020, 'source': '', 'updated': datetime.datetime(2015, 11, 14, 21, 2, 43, 75286)}, 11963: {'blurb': '', 'choicecategory_id': 43910, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 11963, 'multiplier': None, 'name': 'RAID 10 (mirroring and ' 'striping)', 'price': None, 'published': True, 'sortorder': 3030, 'source': '', 'updated': datetime.datetime(2015, 11, 14, 21, 2, 43, 118211)}, 11964: {'blurb': '', 'choicecategory_id': 43910, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 11964, 'multiplier': None, 'name': 'RAID 5 (striped with ' 'parity)', 'price': None, 'published': True, 'sortorder': 3040, 'source': '', 'updated': datetime.datetime(2015, 11, 14, 21, 2, 43, 134790)}, 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)}, 37132: {'blurb': '', 'choicecategory_id': 43910, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2008, 2, 28, 0, 0), 'id': 37132, 'multiplier': None, 'name': 'RAID 6 (striped with dual ' 'parity)', 'price': None, 'published': True, 'sortorder': 3070, 'source': '', 'updated': datetime.datetime(2015, 11, 14, 21, 2, 43, 234914)}, 56231: {'blurb': 'RAID 50:\r\n' 'RAID 50 combines the ' 'straight block-level ' 'striping of RAID 0 with ' 'the distributed parity ' 'of RAID 5. This is a ' 'RAID 0 array striped ' 'across RAID 5 elements. ' 'It requires at least six ' 'drives.\r\n', 'choicecategory_id': 43910, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2014, 11, 13, 20, 25, 18, 285996), 'id': 56231, 'multiplier': None, 'name': 'RAID 50 (nested / striped ' 'with parity)', 'price': None, 'published': True, 'sortorder': 3060, 'source': '', 'updated': datetime.datetime(2015, 11, 14, 21, 2, 43, 209813)}, 56241: {'blurb': 'RAID 60 combines the ' 'straight block-level ' 'striping of RAID 0 with ' 'the distributed double ' 'parity of RAID 6. That ' 'is, a RAID 0 array ' 'striped across RAID 6 ' 'elements. It requires at ' 'least eight disks.', 'choicecategory_id': 43910, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2014, 11, 14, 19, 57, 15, 577442), 'id': 56241, 'multiplier': None, 'name': 'RAID 60 (nested / striped ' 'with dual parity)', 'price': None, 'published': True, 'sortorder': 3080, 'source': '', 'updated': datetime.datetime(2015, 11, 14, 21, 2, 43, 260008)}, 57253: {'blurb': '', 'choicecategory_id': 43910, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2015, 11, 14, 21, 1, 30, 113662), 'id': 57253, 'multiplier': 0, 'name': 'RAID 5 (striped with ' 'parity) with one ' 'hot-spare', 'price': None, 'published': True, 'sortorder': 3050, 'source': '', 'updated': datetime.datetime(2015, 11, 14, 21, 2, 43, 182941)}, 57254: {'blurb': '', 'choicecategory_id': 43910, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2015, 11, 14, 21, 3, 34, 367188), 'id': 57254, 'multiplier': 0, 'name': 'RAID 5 (striped with ' 'parity) with two ' 'hot-spares', 'price': None, 'published': True, 'sortorder': 3052, 'source': '', 'updated': datetime.datetime(2015, 11, 14, 21, 3, 34, 367210)}, 57255: {'blurb': '', 'choicecategory_id': 43910, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2015, 11, 14, 21, 5, 53, 456265), 'id': 57255, 'multiplier': 0, 'name': 'RAID 6 (striped with dual ' 'parity) with one ' 'hot-spare', 'price': None, 'published': True, 'sortorder': 3072, 'source': '', 'updated': datetime.datetime(2015, 11, 14, 21, 5, 53, 456287)}, 57256: {'blurb': '', 'choicecategory_id': 43910, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2015, 11, 14, 21, 6, 38, 131398), 'id': 57256, 'multiplier': 0, 'name': 'RAID 6 (striped with dual ' 'parity) with two ' 'hot-spares', 'price': None, 'published': True, 'sortorder': 3074, 'source': '', 'updated': datetime.datetime(2015, 11, 14, 21, 6, 38, 131420)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 2, 24, 13, 27, 24, 373728), 'defaultchoice_id': 37132, 'id': 58185, 'name': 'RAID Configuration', 'option_id': 11959, 'product_id': 58172, 'published': True, 'qty': 1, 'required': True, 'single': False, 'updated': datetime.datetime(2016, 3, 9, 2, 3, 34, 265942)}), ('59929_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbed0922e0>, 'allowed_quantities': '10,20,30,40,50,60', 'choices': {56654: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B01FYXPGT2/ref=olp_twister_child?ie=UTF8&mv_size_name=0\r\n' '\r\n' 'Western Digital Red ' 'Pro 2TB 3.5-Inch SATA ' 'III 7200rpm 64MB Cache ' 'NAS Internal Hard ' 'Drive (WD2002FFSX) \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 130.0, 'created': datetime.datetime(2015, 2, 18, 15, 0, 53, 864769), 'id': 56654, 'multiplier': 0, 'name': '2TB WD Red Pro NAS ' '3.5-inch SATA 6Gb/s ' '7200rpm Hard Drive', 'price': 0.0, 'published': True, 'sortorder': 5015, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 22, 44, 50, 293910)}, 56655: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B01CL6R7QU/ref=dp_olp_all_mbc?ie=UTF8&condition=all\r\n' '\r\n' 'Western Digital Red ' 'Pro 4TB 3.5-Inch ' '7200rpm 64MB Cache NAS ' 'Hard Drive ' '(WD4002FFWX) \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 211.0, 'created': datetime.datetime(2015, 2, 18, 15, 0, 53, 881580), 'id': 56655, 'multiplier': 0, 'name': '4TB WD Red Pro NAS ' '3.5-inch SATA 6Gb/s ' '7200rpm Hard Drive', 'price': 0.0, 'published': True, 'sortorder': 5015, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 22, 45, 30, 500532)}, 56723: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B00Q1IZJD8/ref=dp_olp_new_mbc?ie=UTF8&condition=new\r\n' '\r\n' 'HGST HUH728080ALE600 ' '3.5" 8TB SATA 6Gb/s ' '7.2K RPM 128M 512E ISE ' 'HDD \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 390.0, 'created': datetime.datetime(2015, 2, 21, 14, 6, 13, 549931), 'id': 56723, 'multiplier': 0, 'name': '8TB HGST Enterprise ' '7200rpm 3.5-inch SATA6 ' 'HDD', 'price': None, 'published': True, 'sortorder': 4990, 'source': '', 'updated': datetime.datetime(2018, 4, 29, 17, 52, 39, 846714)}, 58039: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B07B1HX5KN/ref=olp_twister_child?ie=UTF8&mv_size_name=2\r\n' '\r\n' 'Western Digital WD Red ' 'Pro 6TB NAS Hard Disk ' 'Drive - 7200 RPM SATA ' '6Gb/s 256MB Cache 3.5 ' 'Inch - WD6003FFBX \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 285.0, 'created': datetime.datetime(2016, 2, 1, 0, 44, 45, 840205), 'id': 58039, 'multiplier': 0, 'name': '6TB WD Red Pro NAS ' '3.5-inch SATA 6Gb/s ' '7200rpm Hard Drive', 'price': 0.0, 'published': True, 'sortorder': 5015, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 22, 45, 47, 834768)}, 58133: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B016AG0ITU/ref=dp_olp_new_mbc?ie=UTF8&condition=new\r\n' '\r\n' 'Seagate Exos 7E8 8TB ' '512e SATA 256MB Cache ' '3.5-Inch Enterprise ' 'Hard Drive ' '(ST8000NM0055) \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 315.0, 'created': datetime.datetime(2016, 2, 21, 18, 49, 3, 22520), 'id': 58133, 'multiplier': 0, 'name': '8TB Seagate Exos 3.5-inch ' 'SATA 6Gb/s Hard Drive', 'price': None, 'published': True, 'sortorder': 5004, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 23, 49, 23, 491703)}, 58134: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B01CG0DD1E/ref=olp_twister_child?ie=UTF8&mv_size_name=2\r\n' '\r\n' 'Seagate Exos 7E8 4TB ' '512n SATA 128MB Cache ' '3.5-Inch Enterprise ' 'Hard Drive ' '(ST4000NM0035)\r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 210.0, 'created': datetime.datetime(2016, 2, 21, 18, 50, 38, 188626), 'id': 58134, 'multiplier': 0, 'name': '4TB Seagate Exos 3.5-inch ' 'SATA 6Gb/s Hard Drive', 'price': None, 'published': True, 'sortorder': 5004, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 23, 48, 50, 94093)}, 58135: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B01N95NM6L/ref=olp_twister_child?ie=UTF8&mv_size_name=1\r\n' '\r\n' 'Seagate Exos 7E2 2TB ' 'SATA 6Gb/s 128MB Cache ' '3.5-Inch Enterprise ' 'Hard Drive ' '(ST2000NM0008) \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 140.0, 'created': datetime.datetime(2016, 2, 21, 18, 51, 31, 950847), 'id': 58135, 'multiplier': 0, 'name': '2TB Seagate Exos 3.5-inch ' 'SATA 6Gb/s Hard Drive', 'price': None, 'published': True, 'sortorder': 5004, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 23, 48, 34, 24897)}, 58220: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B01IY9USY6/ref=olp_twister_child?ie=UTF8&mv_size_name=0\r\n' '\r\n' 'WD Gold 1TB Enterprise ' 'Class Hard Disk Drive ' '- 7200 RPM Class SATA ' '6 Gb/s 128MB Cache 3.5 ' 'Inch - WD1005FBYZ \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 100.0, 'created': datetime.datetime(2016, 3, 8, 20, 40, 17, 15465), 'id': 58220, 'multiplier': 0, 'name': '1TB WD Gold Enterprise ' '7200rpm 3.5-inch SATA6 ' 'HDD', 'price': 0.0, 'published': True, 'sortorder': 5016, 'source': '', 'updated': datetime.datetime(2018, 5, 23, 11, 18, 47, 527541)}, 58221: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.wdc.com/products/business-internal-storage/wd-re.html#WD5003ABYZ\r\n' '\r\n' 'WD Re Data ' 'Canter/Enterprise 7200 ' 'RPM SATA 6Gb/s ' '3.5-inch Hard Disk ' 'Drive.\r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 50.0, 'created': datetime.datetime(2016, 3, 8, 20, 47, 38, 946332), 'id': 58221, 'multiplier': 0, 'name': '500GB WD Re (Data Center) ' '7200rpm 3.5-inch SATA6 ' 'HDD', 'price': 0.0, 'published': True, 'sortorder': 5016, 'source': '', 'updated': datetime.datetime(2019, 3, 25, 14, 0, 25, 392003)}, 58222: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B01AV1697A/ref=dp_olp_all_mbc?ie=UTF8&condition=all\r\n' '\r\n' 'WD Gold 4TB Enterprise ' 'Class Hard Disk Drive ' '- 7200 RPM Class SATA ' '6 Gb/s 128MB Cache 3.5 ' 'Inch - WD4002FYYZ \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 195.0, 'created': datetime.datetime(2016, 3, 8, 20, 54, 2, 754707), 'id': 58222, 'multiplier': 0, 'name': '4TB WD Gold Enterprise ' '7200rpm 3.5-inch SATA6 ' 'HDD', 'price': 0.0, 'published': True, 'sortorder': 5016, 'source': '', 'updated': datetime.datetime(2018, 5, 23, 11, 19, 0, 242131)}, 58223: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B01AV168FS/ref=olp_twister_child?ie=UTF8&mv_size_name=3\r\n' '\r\n' 'WD Gold 6TB Enterprise ' 'Class Hard Disk Drive ' '- 7200 RPM Class SATA ' '6 Gb/s 128MB Cache 3.5 ' 'Inch - WD6002FRYZ \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 270.0, 'created': datetime.datetime(2016, 3, 8, 21, 2, 14, 87230), 'id': 58223, 'multiplier': 0, 'name': '6TB WD Gold Enterprise ' '7200rpm 3.5-inch SATA6 ' 'HDD', 'price': 0.0, 'published': True, 'sortorder': 5016, 'source': '', 'updated': datetime.datetime(2018, 5, 23, 11, 19, 9, 990647)}, 58224: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B01IY9UTMM/ref=dp_olp_all_mbc?ie=UTF8&condition=all\r\n' '\r\n' 'WD Gold 2TB Enterprise ' 'Class Hard Disk Drive ' '- 7200 RPM Class SATA ' '6 Gb/s 128MB Cache 3.5 ' 'Inch - WD2005FBYZ \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 140.0, 'created': datetime.datetime(2016, 3, 8, 21, 11, 2, 91489), 'id': 58224, 'multiplier': 0, 'name': '2TB WD Gold Enterprise ' '7200rpm 3.5-inch SATA6 ' 'HDD', 'price': 0.0, 'published': True, 'sortorder': 5016, 'source': '', 'updated': datetime.datetime(2018, 5, 23, 11, 18, 53, 365450)}, 58986: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B01H33VQDG/ref=olp_twister_child?ie=UTF8&mv_size_name=3\r\n' '\r\n' 'WD Red Pro 8TB ' '3.5-Inch SATA III ' '7200rpm 128MB Cache ' 'NAS Internal Hard ' 'Drive (WD8001FFWX) \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 340.0, 'created': datetime.datetime(2016, 12, 3, 18, 40, 4, 249857), 'id': 58986, 'multiplier': 0, 'name': '8TB WD Red Pro NAS ' '3.5-inch SATA 6Gb/s ' '7200rpm Hard Drive', 'price': 0.0, 'published': True, 'sortorder': 5015, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 22, 46, 4, 894161)}, 58990: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B01LXXV880/ref=dp_olp_all_mbc?ie=UTF8&condition=all\r\n' '\r\n' 'Seagate Exos x10 10TB ' 'SATA 6Gb/s 256MB Cache ' 'Enterprise Hard Drive ' '3.5" ' '(ST10000NM0086) \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 430.0, 'created': datetime.datetime(2016, 12, 10, 12, 39, 2, 346000), 'id': 58990, 'multiplier': 0, 'name': '10TB Seagate Exos ' '3.5-inch SATA 6Gb/s Hard ' 'Drive', 'price': None, 'published': True, 'sortorder': 5004, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 23, 49, 42, 564822)}, 59384: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B072F422FW/ref=olp_twister_child?ie=UTF8&mv_size_name=4\r\n' '\r\n' 'WD Red Pro WD101KFBX ' '10TB NAS 7.2K RPM SATA ' '6 Gb/s 256MB 3.5" ' 'HDD \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 448.0, 'created': datetime.datetime(2018, 4, 10, 15, 53, 32, 606651), 'id': 59384, 'multiplier': 0, 'name': '10TB WD Red Pro NAS ' '3.5-inch SATA 6Gb/s ' '7200rpm Hard Drive', 'price': 0.0, 'published': True, 'sortorder': 5015, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 22, 46, 21, 279769)}, 59386: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B074WH5NPT/ref=olp_twister_child?ie=UTF8&mv_size_name=4\r\n' '\r\n' 'WD Gold 8TB Enterprise ' 'Class Hard Disk Drive ' '- 7200 RPM Class SATA ' '6 Gb/s 256MB Cache 3.5 ' 'Inch - WD8003FRYZ \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 360.0, 'created': datetime.datetime(2018, 4, 10, 20, 35, 56, 597499), 'id': 59386, 'multiplier': 0, 'name': '8TB WD Gold Enterprise ' '7200rpm 3.5-inch SATA6 ' 'HDD', 'price': 0.0, 'published': True, 'sortorder': 5016, 'source': '', 'updated': datetime.datetime(2018, 5, 23, 11, 19, 17, 599450)}, 59387: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B01IWCMS5M/ref=olp_twister_child?ie=UTF8&mv_size_name=5\r\n' '\r\n' 'WD Gold 10TB ' 'Enterprise Class Hard ' 'Disk Drive - 7200 RPM ' 'Class SATA 6 Gb/s ' '128MB Cache 3.5 Inch - ' 'WD101KRYZ \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 410.0, 'created': datetime.datetime(2018, 4, 10, 20, 37, 36, 7509), 'id': 59387, 'multiplier': 0, 'name': '10TB WD Gold Enterprise ' '7200rpm 3.5-inch SATA6 ' 'HDD', 'price': 0.0, 'published': True, 'sortorder': 5016, 'source': '', 'updated': datetime.datetime(2018, 5, 23, 11, 19, 25, 511571)}, 59388: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B075L6FJH8/ref=olp_twister_child?ie=UTF8&mv_size_name=6\r\n' '\r\n' 'WD Gold 12TB ' 'Enterprise Class Hard ' 'Disk Drive - 7200 RPM ' 'Class SATA 6 Gb/s ' '256MB Cache 3.5 Inch - ' 'WD121KRYZ \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 495.0, 'created': datetime.datetime(2018, 4, 10, 20, 38, 22, 190916), 'id': 59388, 'multiplier': 0, 'name': '12TB WD Gold Enterprise ' '7200rpm 3.5-inch SATA6 ' 'HDD', 'price': 0.0, 'published': True, 'sortorder': 5016, 'source': '', 'updated': datetime.datetime(2018, 5, 23, 11, 19, 35, 770068)}, 59392: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B00NP6ACPO/ref=olp_twister_child?ie=UTF8&mv_size_name=0&mv_style_name=7\r\n' '\r\n' 'HGST, a Western ' 'Digital Company ' 'ULTRASTAR 7K6000 ' '2000GB 7200RPM SATA ' '512E ULTRA SE 128MB ' 'Cache 3.5-Inch ' 'Internal Bare or OEM ' 'Drives 0F23029\r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 240.0, 'created': datetime.datetime(2018, 4, 17, 10, 46, 56, 841075), 'id': 59392, 'multiplier': 0, 'name': '2TB HGST Enterprise ' '7200rpm 3.5-inch SATA6 ' 'HDD', 'price': None, 'published': True, 'sortorder': 4990, 'source': '', 'updated': datetime.datetime(2018, 4, 29, 17, 52, 16, 497947)}, 59393: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B00NP6A08S/ref=olp_twister_child?ie=UTF8&mv_size_name=1&mv_style_name=7\r\n' '\r\n' 'HGST, a Western ' 'Digital Company ' 'ULTRASTAR 7K6000 ' '4000GB 7200RPM SATA ' '512E ULTRA SE 128MB ' 'Cache 3.5-Inch ' 'Internal Bare or OEM ' 'Drives 0F23025 \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 298.0, 'created': datetime.datetime(2018, 4, 17, 10, 48, 31, 122431), 'id': 59393, 'multiplier': 0, 'name': '4TB HGST Enterprise ' '7200rpm 3.5-inch SATA6 ' 'HDD', 'price': None, 'published': True, 'sortorder': 4990, 'source': '', 'updated': datetime.datetime(2018, 4, 29, 17, 52, 22, 967376)}, 59394: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B00NP69D18/ref=olp_twister_child?ie=UTF8&mv_size_name=2&mv_style_name=7\r\n' '\r\n' 'HGST, a Western ' 'Digital Company ' 'ULTRASTAR 7K6000 ' '5000GB 7200RPM SATA ' '512E ULTRA SE 128MB ' 'Cache 3.5-Inch ' 'Internal Bare or OEM ' 'Drives 0F23023 \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 368.0, 'created': datetime.datetime(2018, 4, 17, 10, 49, 13, 438493), 'id': 59394, 'multiplier': 0, 'name': '5TB HGST Enterprise ' '7200rpm 3.5-inch SATA6 ' 'HDD', 'price': None, 'published': True, 'sortorder': 4990, 'source': '', 'updated': datetime.datetime(2018, 4, 29, 17, 52, 29, 244702)}, 59395: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B00NP68TK4/ref=dp_olp_all_mbc?ie=UTF8&condition=all\r\n' '\r\n' 'HGST, a Western ' 'Digital Company ' 'ULTRASTAR 7K6000 ' '6000GB 7200RPM SATA ' '512E ULTRA SE 128MB ' 'Cache 3.5-Inch ' 'Internal Bare or OEM ' 'Drives 0F23021 \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 370.0, 'created': datetime.datetime(2018, 4, 17, 10, 50, 37, 924968), 'id': 59395, 'multiplier': 0, 'name': '6TB HGST Enterprise ' '7200rpm 3.5-inch SATA6 ' 'HDD', 'price': None, 'published': True, 'sortorder': 4990, 'source': '', 'updated': datetime.datetime(2018, 4, 29, 17, 52, 34, 151032)}, 59396: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B01HEF8OV0/ref=dp_olp_new_mbc?ie=UTF8&condition=new\r\n' '\r\n' 'HGST Ultrastar He10 ' 'HUH721010ALE604 10TB ' 'SATA 6Gb/s 7,200 rpm ' '256MB Cache 3.5" ' 'Internal Hard ' 'Drive \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.\r\n', 'cost': 420.0, 'created': datetime.datetime(2018, 4, 17, 11, 6, 54, 897770), 'id': 59396, 'multiplier': 0, 'name': '10TB HGST Enterprise ' '7200rpm 3.5-inch ' 'Helium-filled SATA6 HDD', 'price': None, 'published': True, 'sortorder': 4990, 'source': '', 'updated': datetime.datetime(2018, 4, 29, 17, 52, 44, 503045)}, 59397: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B079RMMPQL/ref=dp_olp_new_mbc?ie=UTF8&condition=new\r\n' '\r\n' 'HGST Ultrastar He12 | ' 'HUH721212ALE601 | 12TB ' '7.2K RPM SATA-6Gb/s ' '3.5" 256MB cache ' 'HDD \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 450.0, 'created': datetime.datetime(2018, 4, 17, 11, 11, 0, 581231), 'id': 59397, 'multiplier': 0, 'name': '12TB HGST Enterprise ' '7200rpm 3.5-inch ' 'Helium-filled PMR SATA6 ' 'HDD', 'price': None, 'published': True, 'sortorder': 4990, 'source': '', 'updated': datetime.datetime(2018, 4, 29, 17, 52, 50, 231191)}, 59426: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B01N76CZII/ref=olp_twister_child?ie=UTF8&mv_size_name=0\r\n' '\r\n' 'Seagate Exos 7E2 1TB ' 'SATA 6Gb/s 128MB Cache ' '3.5-Inch Enterprise ' 'Hard Drive ' '(ST1000NM0008) \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 90.0, 'created': datetime.datetime(2018, 4, 17, 15, 51, 10, 977343), 'id': 59426, 'multiplier': 0, 'name': '1TB Seagate Exos 3.5-inch ' 'SATA 6Gb/s Hard Drive', 'price': None, 'published': True, 'sortorder': 5004, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 23, 48, 11, 964514)}, 59427: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B01CG0DCTC/ref=olp_twister_child?ie=UTF8&mv_size_name=3\r\n' '\r\n' 'Seagate Exos 7E8 6TB ' '512e SATA 256MB Cache ' '3.5-Inch Enterprise ' 'Hard Drive ' '(ST6000NM0115) \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.\r\n' '\r\n' '\r\n' 'online prices around ' '290-300 2/21/16 JJW', 'cost': 250.0, 'created': datetime.datetime(2018, 4, 17, 15, 57, 22, 398761), 'id': 59427, 'multiplier': 0, 'name': '6TB Seagate Exos 3.5-inch ' 'SATA 6Gb/s Hard Drive', 'price': None, 'published': True, 'sortorder': 5004, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 23, 49, 8, 758887)}, 59428: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B0759Q9FXZ/ref=dp_olp_new_mbc?ie=UTF8&condition=new\r\n' '\r\n' 'Seagate Exos x12 12TB ' 'SATA 6Gb/s 256MB Cache ' 'Enterprise Hard Drive ' '3.5" ' '(ST12000NM0007) \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 472.0, 'created': datetime.datetime(2018, 4, 17, 16, 1, 41, 759980), 'id': 59428, 'multiplier': 0, 'name': '12TB Seagate Exos ' '3.5-inch SATA 6Gb/s Hard ' 'Drive', 'price': None, 'published': True, 'sortorder': 5004, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 23, 50, 9, 629754)}, 59429: {'blurb': '', 'choicecategory_id': 58837, 'comment': 'https://www.amazon.com/gp/offer-listing/B00NP6AIEY/ref=olp_twister_child?ie=UTF8&mv_size_name=0&mv_style_name=5\r\n' '\r\n' 'HGST, a Western ' 'Digital Company ' 'ULTRASTAR 7K6000 ' '2000GB 7200RPM SAS ' '512E ULTRA TCG 128MB ' 'Cache 3.5-Inch ' 'Internal Bare or OEM ' 'Drives 0F22809 \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 200.0, 'created': datetime.datetime(2018, 4, 17, 16, 53, 38, 28381), 'id': 59429, 'multiplier': 0, 'name': '2TB HGST Enterprise ' '7200rpm 3.5-inch SAS12 ' 'HDD', 'price': None, 'published': True, 'sortorder': 5100, 'source': '', 'updated': datetime.datetime(2018, 4, 29, 20, 10, 16, 662166)}, 59430: {'blurb': '', 'choicecategory_id': 58837, 'comment': 'https://www.amazon.com/gp/offer-listing/B00NP6A5T2/ref=olp_twister_child?ie=UTF8&mv_size_name=1&mv_style_name=3\r\n' '\r\n' 'HGST, a Western ' 'Digital Company ' 'ULTRASTAR 7K6000 ' '4000GB 7200RPM SAS ' '512E ULTRA ISE 128MB ' 'Cache 3.5-Inch ' 'Internal Bare or OEM ' 'Drives 0F22795 \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 255.0, 'created': datetime.datetime(2018, 4, 17, 16, 55, 27, 26509), 'id': 59430, 'multiplier': 0, 'name': '4TB HGST Enterprise ' '7200rpm 3.5-inch SAS12 ' 'HDD', 'price': None, 'published': True, 'sortorder': 5100, 'source': '', 'updated': datetime.datetime(2018, 4, 29, 20, 10, 19, 281993)}, 59431: {'blurb': '', 'choicecategory_id': 58837, 'comment': 'https://www.amazon.com/gp/offer-listing/B00NP69U84/ref=olp_twister_child?ie=UTF8&mv_size_name=2&mv_style_name=3\r\n' '\r\n' 'HGST, a Western ' 'Digital Company ' 'ULTRASTAR 7K6000 ' '5000GB 7200RPM SAS ' '512E ULTRA ISE 128MB ' 'Cache 3.5-Inch ' 'Internal Bare or OEM ' 'Drives 0F22793 \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 380.0, 'created': datetime.datetime(2018, 4, 17, 16, 59, 3, 664176), 'id': 59431, 'multiplier': 0, 'name': '5TB HGST Enterprise ' '7200rpm 3.5-inch SAS12 ' 'HDD', 'price': None, 'published': True, 'sortorder': 5100, 'source': '', 'updated': datetime.datetime(2018, 4, 29, 20, 10, 21, 698973)}, 59432: {'blurb': '', 'choicecategory_id': 58837, 'comment': 'https://www.amazon.com/gp/offer-listing/B00NP68ZTO/ref=dp_olp_new_mbc?ie=UTF8&condition=new\r\n' '\r\n' 'HGST, a Western ' 'Digital Company ' 'ULTRASTAR 7K6000 | ' 'HUS726060AL5210 | ' '0F22791 | 6000GB ' '7200RPM SAS 512E ULTRA ' 'ISE 128MB Cache ' '3.5-Inch Internal Bare ' 'or OEM Hard Drives \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 385.0, 'created': datetime.datetime(2018, 4, 17, 17, 0, 4, 608451), 'id': 59432, 'multiplier': 0, 'name': '6TB HGST Enterprise ' '7200rpm 3.5-inch SAS12 ' 'HDD', 'price': None, 'published': True, 'sortorder': 5100, 'source': '', 'updated': datetime.datetime(2018, 4, 29, 20, 10, 24, 84749)}, 59433: {'blurb': '', 'choicecategory_id': 58837, 'comment': 'https://www.amazon.com/gp/offer-listing/B01IF6436M/ref=dp_olp_new_mbc?ie=UTF8&condition=new\r\n' '\r\n' 'HGST Ultrastar He10 ' 'HUH721008AL5200 8 TB ' 'SAS 3.5" Internal Hard ' 'Drive\r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 410.0, 'created': datetime.datetime(2018, 4, 17, 17, 3, 32, 777983), 'id': 59433, 'multiplier': 0, 'name': '8TB HGST Enterprise ' '7200rpm 3.5-inch ' 'Helium-filled SAS12 HDD', 'price': None, 'published': True, 'sortorder': 5100, 'source': '', 'updated': datetime.datetime(2018, 4, 29, 20, 10, 27, 555275)}, 59434: {'blurb': '', 'choicecategory_id': 58837, 'comment': 'https://www.amazon.com/gp/offer-listing/B01FT191XG/ref=dp_olp_new_mbc?ie=UTF8&condition=new\r\n' '\r\n' 'HGST 0F27402 10TB ' 'ULTRA 4KN ISE HE10 SAS ' '7200 RPM 256MB 3.5IN ' '26.1MM \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 470.0, 'created': datetime.datetime(2018, 4, 17, 17, 4, 38, 6078), 'id': 59434, 'multiplier': 0, 'name': '10TB HGST Enterprise ' '7200rpm 3.5-inch ' 'Helium-filled SAS12 HDD', 'price': None, 'published': True, 'sortorder': 5100, 'source': '', 'updated': datetime.datetime(2018, 4, 29, 20, 10, 30, 201346)}, 59435: {'blurb': '', 'choicecategory_id': 58837, 'comment': 'https://www.amazon.com/gp/offer-listing/B074JJ2LDH/ref=dp_olp_new_mbc?ie=UTF8&condition=new\r\n' '\r\n' 'HGST Hard Drive ' '0F29560 3.5 inch 12TB ' 'ES 72000RPM 256MB SAS ' '12Gb/s 4Kn ISE ' 'Ultrastar He12 ' 'Bare \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 565.0, 'created': datetime.datetime(2018, 4, 17, 17, 5, 44, 735019), 'id': 59435, 'multiplier': 0, 'name': '12TB HGST Enterprise ' '7200rpm 3.5-inch ' 'Helium-filled SAS12 HDD', 'price': None, 'published': True, 'sortorder': 5100, 'source': '', 'updated': datetime.datetime(2018, 4, 29, 20, 10, 33, 97598)}, 59436: {'blurb': '', 'choicecategory_id': 58837, 'comment': 'https://www.amazon.com/gp/offer-listing/B01G3S7PDW/ref=dp_olp_new_mbc?ie=UTF8&condition=new\r\n' '\r\n' 'Seagate HDD ' 'ST1000NM0045 1TB SAS ' '12Gb/s Enterprise ' '7200RPM 128MB 3.5 inch ' '512n Bare \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 125.0, 'created': datetime.datetime(2018, 4, 18, 9, 1, 30, 193736), 'id': 59436, 'multiplier': 0, 'name': '1TB Seagate Exos ' 'Enterprise 3.5-inch SAS ' '12Gb/s Hard Drive', 'price': None, 'published': True, 'sortorder': 5110, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 22, 26, 38, 427099)}, 59437: {'blurb': '', 'choicecategory_id': 58837, 'comment': 'https://www.amazon.com/gp/offer-listing/B01E1XRLFI/ref=dp_olp_new_mbc?ie=UTF8&condition=new\r\n' '\r\n' 'Seagate Hard Drive ' 'ST2000NM0135 2TB SAS ' '12Gb/s Enterprise ' '7200RPM 128MB 3.5inch ' '512e Bare \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 155.0, 'created': datetime.datetime(2018, 4, 18, 9, 3, 17, 953193), 'id': 59437, 'multiplier': 0, 'name': '2TB Seagate Exos ' 'Enterprise 3.5-inch SAS ' '12Gb/s Hard Drive', 'price': None, 'published': True, 'sortorder': 5110, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 22, 27, 5, 874140)}, 59438: {'blurb': '', 'choicecategory_id': 58837, 'comment': 'https://www.amazon.com/gp/offer-listing/B01FRC1AJ0/ref=dp_olp_new_mbc?ie=UTF8&condition=new\r\n' '\r\n' 'Seagate 4TB Enterprise ' 'Capacity SAS 12Gb/s ' '512n 3.5" Internal ' 'Hard Drive Model ' 'ST4000NM0025 \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 205.0, 'created': datetime.datetime(2018, 4, 18, 9, 4, 23, 836245), 'id': 59438, 'multiplier': 0, 'name': '4TB Seagate Exos ' 'Enterprise 3.5-inch SAS ' '12Gb/s Hard Drive', 'price': None, 'published': True, 'sortorder': 5110, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 22, 27, 29, 267725)}, 59439: {'blurb': '', 'choicecategory_id': 58837, 'comment': 'https://www.amazon.com/gp/offer-listing/B01E1KQF26/ref=dp_olp_new_mbc?ie=UTF8&condition=new\r\n' '\r\n' 'Seagate ST6000NM0195 ' '6TB 7200RPM SAS-12Gb/s ' 'SATA-6Gb/s 3.5" 256MB ' '512e SED Enterprise ' 'HDD \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 270.0, 'created': datetime.datetime(2018, 4, 18, 9, 5, 41, 944690), 'id': 59439, 'multiplier': 0, 'name': '6TB Seagate Exos ' 'Enterprise 3.5-inch SAS ' '12Gb/s Hard Drive', 'price': None, 'published': True, 'sortorder': 5110, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 22, 27, 52, 546298)}, 59440: {'blurb': '', 'choicecategory_id': 58837, 'comment': 'https://www.amazon.com/gp/offer-listing/B014UYHJWS/ref=dp_olp_all_mbc?ie=UTF8&condition=all\r\n' '\r\n' 'Seagate Enterprise ' "Capacity 3.5'' HDD 8TB " '7200 RPM 512e SAS ' '12Gb/s 256MB Cache ' 'Internal Hard Drive ' 'ST8000NM0075 \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 335.0, 'created': datetime.datetime(2018, 4, 18, 9, 6, 42, 929158), 'id': 59440, 'multiplier': 0, 'name': '8TB Seagate Exos ' 'Enterprise 3.5-inch SAS ' '12Gb/s Hard Drive', 'price': None, 'published': True, 'sortorder': 5110, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 22, 28, 12, 222233)}, 59441: {'blurb': '', 'choicecategory_id': 58837, 'comment': 'https://www.amazon.com/gp/offer-listing/B01MQZAQDH/ref=dp_olp_new_mbc?ie=UTF8&condition=new\r\n' '\r\n' 'Seagate HDD ' 'ST10000NM0206 10TB 3.5 ' '7200RPM 256MB SAS ' '12GB/s Enterprise ' 'Bare \r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 450.0, 'created': datetime.datetime(2018, 4, 18, 9, 10, 17, 496079), 'id': 59441, 'multiplier': 0, 'name': '10TB Seagate Exos ' 'Enterprise 3.5-inch SAS ' '12Gb/s Hard Drive', 'price': None, 'published': True, 'sortorder': 5110, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 22, 28, 32, 705366)}, 59442: {'blurb': '', 'choicecategory_id': 58837, 'comment': 'https://www.amazon.com/gp/offer-listing/B0741S8Y6L/ref=dp_olp_new_mbc?ie=UTF8&condition=new\r\n' '\r\n' 'Seagate ST12000NM0027 ' '12TB 3.5" Internal ' 'Hard Drive - SAS ' '12Gb/s\r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 520.0, 'created': datetime.datetime(2018, 4, 18, 9, 11, 28, 274060), 'id': 59442, 'multiplier': 0, 'name': '12TB Seagate Exos ' 'Enterprise 3.5-inch SAS ' '12Gb/s Hard Drive', 'price': None, 'published': True, 'sortorder': 5110, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 22, 28, 59, 603774)}, 59478: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.amazon.com/gp/offer-listing/B01I7SAHO0/ref=dp_olp_new_mbc?ie=UTF8&condition=new\r\n' '\r\n' 'HGST 1W10001 1TB ' 'ULTRASTAR 7K2 SATA ' '7200 RPM 3.5IN 26.1MM ' '128MB ULTRA 512N ' 'SE.\r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 135.0, 'created': datetime.datetime(2018, 4, 18, 15, 47, 0, 318786), 'id': 59478, 'multiplier': 0, 'name': '1TB HGST Enterprise ' '7200rpm 3.5-inch SATA6 ' 'HDD ', 'price': None, 'published': True, 'sortorder': 4990, 'source': '', 'updated': datetime.datetime(2018, 4, 29, 17, 52, 10, 157541)}, 59715: {'blurb': '', 'choicecategory_id': 58837, 'comment': '$450 @ ' 'https://store.supermicro.com/14tb-3-5-7200rpm-sas3-12gb-s-512m-internal-hard-drive-hdd-a14t-wuh721414al5204.html\r\n' '\r\n' 'HGST 14TB 3.5" 7200RPM ' 'SAS3 12Gb/s 512M ' 'Internal Hard Drive ' '(HDD-A14T-WUH721414AL5204)\r\n' '\r\n' '26 Sept. 2019,\r\n' 'Asif.', 'cost': 590.0, 'created': datetime.datetime(2019, 9, 25, 20, 14, 34, 845641), 'id': 59715, 'multiplier': 0, 'name': '14TB HGST Enterprise ' '7200rpm 3.5-inch ' 'Helium-filled SAS12 HDD', 'price': None, 'published': True, 'sortorder': 5100, 'source': '', 'updated': datetime.datetime(2019, 9, 27, 13, 25, 46, 717162)}, 59728: {'blurb': '', 'choicecategory_id': 58837, 'comment': 'https://www.malabs.com/product/HD-ST14T2G\r\n' '\r\n' '$ 460 ' '(https://www.malabs.com/product/HD-ST14T2G)\r\n' '\r\n' '16 Nov. 2019,\r\n' 'Asif.', 'cost': 555.0, 'created': datetime.datetime(2019, 11, 15, 22, 32, 50, 632160), 'id': 59728, 'multiplier': 0, 'name': '14TB Seagate Exos ' 'Enterprise 3.5-inch SAS ' '12Gb/s Hard Drive', 'price': None, 'published': True, 'sortorder': 5110, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 22, 32, 50, 632179)}, 59729: {'blurb': '', 'choicecategory_id': 58837, 'comment': 'https://www.malabs.com/product/HD-ST16T2G\r\n' '\r\n' '$ 499 ' '(https://www.malabs.com/product/HD-ST14T2G)\r\n' '\r\n' '16 Nov. 2019,\r\n' 'Asif.', 'cost': 599.0, 'created': datetime.datetime(2019, 11, 15, 22, 34, 7, 970176), 'id': 59729, 'multiplier': 0, 'name': '16TB Seagate Exos ' 'Enterprise 3.5-inch SAS ' '12Gb/s Hard Drive', 'price': None, 'published': True, 'sortorder': 5110, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 22, 34, 7, 970198)}, 59730: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://shop.westerndigital.com/products/internal-drives/wd-red-pro-sata-hdd#WD121KFBX\r\n' '\r\n' '$405 (WD Red Pro ' 'WD101KFBX 12TB NAS ' '7.2K RPM SATA 6 Gb/s ' '256MB 3.5" HDD)\r\n' '\r\n' '16 Nov 2019,\r\n' 'Asif.', 'cost': 485.0, 'created': datetime.datetime(2019, 11, 15, 22, 47, 41, 641942), 'id': 59730, 'multiplier': 0, 'name': '12TB WD Red Pro NAS ' '3.5-inch SATA 6Gb/s ' '7200rpm Hard Drive', 'price': 0.0, 'published': True, 'sortorder': 5015, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 22, 49, 32, 822742)}, 59731: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://shop.westerndigital.com/products/internal-drives/wd-red-pro-sata-hdd#WD141KFGX\r\n' '\r\n' '$575 (WD Red Pro ' 'WD101KFBX 14TB NAS ' '7.2K RPM SATA 6 Gb/s ' '256MB 3.5" HDD)\r\n' '\r\n' '16 Nov 2019,\r\n' 'Asif.', 'cost': 680.0, 'created': datetime.datetime(2019, 11, 15, 22, 50, 36, 39416), 'id': 59731, 'multiplier': 0, 'name': '14TB WD Red Pro NAS ' '3.5-inch SATA 6Gb/s ' '7200rpm Hard Drive', 'price': 0.0, 'published': True, 'sortorder': 5015, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 22, 50, 59, 608528)}, 59734: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.malabs.com/product/HD-ST14T1G\r\n' '$455 (Seagate ' 'Enterprise Capacity ' 'ST14000NM001G 14TB ' '7200RPM SATA 6Gb/s ' '256MB Enterprise Hard ' 'Drive (EXOSX16 ' '512E/4KN SATA) )\r\n' '\r\n' '16 Nov. 2019,\r\n' 'Asif.', 'cost': 545.0, 'created': datetime.datetime(2019, 11, 15, 23, 55, 20, 388025), 'id': 59734, 'multiplier': 0, 'name': '14TB Seagate Exos ' '3.5-inch SATA 6Gb/s Hard ' 'Drive', 'price': None, 'published': True, 'sortorder': 5004, 'source': '', 'updated': datetime.datetime(2019, 11, 15, 23, 55, 20, 388044)}, 59735: {'blurb': '', 'choicecategory_id': 58838, 'comment': 'https://www.malabs.com/product/HD-ST16T1G\r\n' '\r\n' '$495 (Seagate ' 'Enterprise Capacity ' 'ST16000NM001G 16TB ' '7200RPM SATA 6Gb/s ' '256MB Enterprise Hard ' 'Drive (EXOSX16 ' '512E/4KN SATA) )\r\n' '\r\n' '16 Nov. 2019,\r\n' 'Asif.', 'cost': 545.0, 'created': datetime.datetime(2019, 11, 15, 23, 57, 34, 485063), 'id': 59735, 'multiplier': 0, 'name': '16TB Seagate Exos ' '3.5-inch SATA 6Gb/s Hard ' 'Drive', 'price': None, 'published': True, 'sortorder': 5004, 'source': '', 'updated': datetime.datetime(2020, 1, 5, 18, 54, 17, 180596)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2019, 9, 27, 15, 21, 8, 16839), 'defaultchoice_id': 58220, 'id': 59929, 'name': 'Hard Drive Array', 'option_id': 58845, 'product_id': 58172, 'published': True, 'qty': 1, 'required': True, 'single': False, 'updated': datetime.datetime(2019, 12, 6, 22, 27, 10, 612770)}), ('58181_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbed092370>, 'allowed_quantities': '2', 'choices': {56230: {'blurb': 'Use the first two drives ' 'in the RAID array - for ' 'NAS / FLASH / cloud ' 'series', 'choicecategory_id': 43882, 'comment': 'Use the first two ' 'drives in the RAID ' 'array - for NAS / ' 'cloud series', 'cost': 0.0, 'created': datetime.datetime(2014, 11, 12, 10, 0, 0, 801102), 'id': 56230, 'multiplier': 0, 'name': 'Use first two drives in ' 'main array', 'price': 0.0, 'published': True, 'sortorder': 1110, 'source': '', 'updated': datetime.datetime(2018, 4, 25, 13, 19, 50, 960776)}, 56714: {'blurb': 'Some OSes / software use ' 'this by default - ' 'FreeNAS and ' 'OpenMediaVault, for ' 'example', 'choicecategory_id': 43882, 'comment': 'SanIdsk Exttreme, ' 'highly rated:\r\n' 'http://thewirecutter.com/reviews/the-best-usb-3-0-thumb-drive/\r\n' '\r\n' "HGST - it's USB2, " 'though:\r\n' 'http://www.hgst.com/tech/techlib.nsf/techdocs/8F90919F962E2F7888257C40008203F0/$file/HGST_USBFlashModule_ds.pdf\r\n', 'cost': 35.0, 'created': datetime.datetime(2015, 2, 20, 11, 52, 7, 343587), 'id': 56714, 'multiplier': None, 'name': 'High-reliability internal ' 'USB3 Flash Drive - such ' 'as SanDisk Exteme 32GB', 'price': None, 'published': True, 'sortorder': 4890, 'source': '', 'updated': datetime.datetime(2016, 4, 30, 14, 56, 38, 588752)}, 58369: {'blurb': 'Use the primary volume ' 'in the RAID array - for ' 'NAS / FLASH / cloud ' 'series', 'choicecategory_id': 43882, 'comment': 'Use the primary volume ' 'in the RAID array - ' 'for NAS / FLASH / ' 'cloud series', 'cost': 0.0, 'created': datetime.datetime(2016, 4, 30, 14, 58, 35, 376802), 'id': 58369, 'multiplier': 0, 'name': 'Include OS on the primary ' 'volume in main array', 'price': 0.0, 'published': True, 'sortorder': 1109, 'source': '', 'updated': datetime.datetime(2018, 4, 25, 13, 21, 36, 987888)}, 59321: {'blurb': '', 'choicecategory_id': 58832, 'comment': 'https://www.samsung.com/us/computing/memory-storage/solid-state-drives/ssd-860-evo-2-5--sata-iii-250gb-mz-76e250b-am/\r\n' '\r\n' 'MZ-76E250B/AM\r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif', 'cost': 88.0, 'created': datetime.datetime(2018, 4, 6, 12, 58, 21, 233603), 'id': 59321, 'multiplier': 0, 'name': '250GB Samsung 860 EVO ' 'SATA6 SSD', 'price': None, 'published': True, 'sortorder': 4500, 'source': '', 'updated': datetime.datetime(2018, 5, 3, 14, 3, 52, 119333)}, 59322: {'blurb': '', 'choicecategory_id': 58832, 'comment': 'https://www.samsung.com/us/computing/memory-storage/solid-state-drives/ssd-860-evo-2-5--sata-iii-500gb-mz-76e500b-am/\r\n' '\r\n' 'MZ-76E500B/AM\r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif', 'cost': 154.0, 'created': datetime.datetime(2018, 4, 6, 13, 0, 6, 281965), 'id': 59322, 'multiplier': 0, 'name': '500GB Samsung 860 EVO ' 'SATA6 SSD', 'price': None, 'published': True, 'sortorder': 4500, 'source': '', 'updated': datetime.datetime(2018, 5, 3, 14, 4, 31, 866046)}, 59323: {'blurb': '', 'choicecategory_id': 58832, 'comment': 'https://www.samsung.com/us/computing/memory-storage/solid-state-drives/ssd-860-evo-2-5--sata-iii-1tb-mz-76e1t0b-am/\r\n' '\r\n' 'MZ-76E1T0B/AM\r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif', 'cost': 308.0, 'created': datetime.datetime(2018, 4, 6, 13, 1, 32, 319327), 'id': 59323, 'multiplier': 0, 'name': '1TB Samsung 860 EVO SATA6 ' 'SSD', 'price': None, 'published': True, 'sortorder': 4500, 'source': '', 'updated': datetime.datetime(2018, 5, 3, 14, 5, 15, 695655)}, 59324: {'blurb': '', 'choicecategory_id': 58832, 'comment': 'https://www.samsung.com/us/computing/memory-storage/solid-state-drives/ssd-860-evo-2-5--sata-iii-2tb-mz-76e2t0b-am/\r\n' '\r\n' 'MZ-76E2T0B/AM\r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif', 'cost': 715.0, 'created': datetime.datetime(2018, 4, 6, 13, 2, 54, 142770), 'id': 59324, 'multiplier': 0, 'name': '2TB Samsung 860 EVO SATA6 ' 'SSD', 'price': None, 'published': True, 'sortorder': 4500, 'source': '', 'updated': datetime.datetime(2018, 5, 3, 14, 5, 56, 772863)}, 59325: {'blurb': '', 'choicecategory_id': 58832, 'comment': 'https://www.samsung.com/us/computing/memory-storage/solid-state-drives/ssd-860-evo-2-5--sata-iii-4tb-mz-76e4t0b-am/\r\n' '\r\n' 'MZ-76E4T0B/AM\r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif', 'cost': 1538.0, 'created': datetime.datetime(2018, 4, 6, 13, 6, 25, 996903), 'id': 59325, 'multiplier': 0, 'name': '4TB Samsung 860 EVO SATA6 ' 'SSD', 'price': None, 'published': True, 'sortorder': 4500, 'source': '', 'updated': datetime.datetime(2018, 5, 3, 14, 6, 42, 287088)}, 59326: {'blurb': '', 'choicecategory_id': 58832, 'comment': 'https://www.samsung.com/us/computing/memory-storage/solid-state-drives/ssd-860-pro-2-5--sata-iii-256gb-mz-76p256bw/\r\n' '\r\n' 'MZ-76P256BW\r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 158.0, 'created': datetime.datetime(2018, 4, 6, 13, 11, 37, 144519), 'id': 59326, 'multiplier': 0, 'name': '256GB Samsung 860 PRO ' 'SATA6 SSD', 'price': None, 'published': True, 'sortorder': 4501, 'source': '', 'updated': datetime.datetime(2018, 5, 3, 14, 10, 27, 963299)}, 59327: {'blurb': '', 'choicecategory_id': 58832, 'comment': 'https://www.samsung.com/us/computing/memory-storage/solid-state-drives/ssd-860-pro-2-5--sata-iii-512gb-mz-76p512bw/\r\n' '\r\n' 'MZ-76P512BW\r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 276.0, 'created': datetime.datetime(2018, 4, 6, 13, 12, 34, 456033), 'id': 59327, 'multiplier': 0, 'name': '512GB Samsung 860 PRO ' 'SATA6 SSD', 'price': None, 'published': True, 'sortorder': 4501, 'source': '', 'updated': datetime.datetime(2018, 5, 3, 14, 10, 58, 10508)}, 59328: {'blurb': '', 'choicecategory_id': 58832, 'comment': 'https://www.samsung.com/us/computing/memory-storage/solid-state-drives/ssd-860-pro-2-5--sata-iii-1tb-mz-76p1t0bw/\r\n' '\r\n' 'MZ-76P1T0BW\r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 484.0, 'created': datetime.datetime(2018, 4, 6, 13, 13, 2, 685017), 'id': 59328, 'multiplier': 0, 'name': '1TB Samsung 860 PRO SATA6 ' 'SSD', 'price': None, 'published': True, 'sortorder': 4501, 'source': '', 'updated': datetime.datetime(2018, 5, 3, 14, 11, 38, 985067)}, 59329: {'blurb': '', 'choicecategory_id': 58832, 'comment': 'https://www.samsung.com/us/computing/memory-storage/solid-state-drives/ssd-860-pro-2-5--sata-iii-2tb-mz-76p2t0bw/\r\n' '\r\n' 'MZ-76P2T0BW\r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 1044.0, 'created': datetime.datetime(2018, 4, 6, 13, 13, 28, 436670), 'id': 59329, 'multiplier': 0, 'name': '2TB Samsung 860 PRO SATA6 ' 'SSD', 'price': None, 'published': True, 'sortorder': 4501, 'source': '', 'updated': datetime.datetime(2018, 5, 3, 14, 12, 31, 826787)}, 59330: {'blurb': '', 'choicecategory_id': 58832, 'comment': 'https://www.samsung.com/us/computing/memory-storage/solid-state-drives/ssd-860-pro-2-5--sata-iii-4tb-mz-76p4t0bw/\r\n' '\r\n' 'MZ-76P4T0BW\r\n' '\r\n' '30 Apr 2018,\r\n' 'Asif.', 'cost': 2092.0, 'created': datetime.datetime(2018, 4, 6, 13, 14, 2, 448490), 'id': 59330, 'multiplier': 0, 'name': '4TB Samsung 860 PRO SATA6 ' 'SSD', 'price': None, 'published': True, 'sortorder': 4501, 'source': '', 'updated': datetime.datetime(2018, 5, 3, 14, 13, 7, 527213)}, 59640: {'blurb': '', 'choicecategory_id': 58832, 'comment': '$60 ' '(https://www.malabs.com/product/SSD-DM16MN)\r\n' '\r\n' '\r\n' '10 JAN 2018,\r\n' 'Asif', 'cost': 70.0, 'created': datetime.datetime(2019, 1, 12, 13, 49, 35, 138696), 'id': 59640, 'multiplier': 0, 'name': '16GB SSD SATA DOM (Read ' '145 MB/s -30 Write MB/s)', 'price': None, 'published': True, 'sortorder': 4495, 'source': '', 'updated': datetime.datetime(2019, 1, 12, 13, 51, 22, 662221)}, 59641: {'blurb': '', 'choicecategory_id': 58832, 'comment': '$60 ' '(https://www.malabs.com/product/SSD-DM32MN)\r\n' '\r\n' '\r\n' '10 JAN 2018,\r\n' 'Asif', 'cost': 75.0, 'created': datetime.datetime(2019, 1, 12, 13, 52, 10, 489266), 'id': 59641, 'multiplier': 0, 'name': '32GB SSD SATA DOM (Read ' '280 MB/s - 50 Write MB/s)', 'price': None, 'published': True, 'sortorder': 4495, 'source': '', 'updated': datetime.datetime(2019, 1, 12, 13, 52, 57, 256064)}, 59642: {'blurb': '', 'choicecategory_id': 58832, 'comment': '$90 ' '(https://www.malabs.com/product/SSD-DM64MN)\r\n' '\r\n' '\r\n' '10 JAN 2018,\r\n' 'Asif', 'cost': 105.0, 'created': datetime.datetime(2019, 1, 12, 13, 54, 39, 340439), 'id': 59642, 'multiplier': 0, 'name': '64GB SSD SATA DOM (Read ' '520 MB/s - 95 Write MB/s)', 'price': None, 'published': True, 'sortorder': 4495, 'source': '', 'updated': datetime.datetime(2019, 1, 12, 13, 54, 39, 340465)}, 59643: {'blurb': '', 'choicecategory_id': 58832, 'comment': '$135 ' '(https://www.malabs.com/product/SSD-DM128S\r\n' '\r\n' '\r\n' '10 JAN 2018,\r\n' 'Asif', 'cost': 160.0, 'created': datetime.datetime(2019, 1, 12, 13, 56, 14, 821997), 'id': 59643, 'multiplier': 0, 'name': '128GB SSD SATA DOM (Read ' '520 MB/s - 180 Write ' 'MB/s)', 'price': None, 'published': True, 'sortorder': 4495, 'source': '', 'updated': datetime.datetime(2019, 1, 12, 13, 56, 14, 822023)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 2, 24, 13, 27, 24, 360338), 'defaultchoice_id': 59321, 'id': 58181, 'name': 'Mirrored OS Drives', 'option_id': 56242, 'product_id': 58172, 'published': True, 'qty': 1, 'required': True, 'single': False, 'updated': datetime.datetime(2018, 5, 1, 15, 25, 33, 861510)}), ('58183_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbed092400>, '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)}, 57589: {'blurb': '2x GbE Network Port, ' 'RJ45 - typically ' 'on-motherboard ', 'choicecategory_id': 43896, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2015, 11, 27, 14, 56, 21, 237763), 'id': 57589, 'multiplier': 0, 'name': '2x GbE Network Port, RJ45', 'price': None, 'published': True, 'sortorder': 600, 'source': '', 'updated': datetime.datetime(2015, 11, 27, 15, 1, 17, 22318)}, 57590: {'blurb': '4x GbE Network Port, ' 'RJ45 - typically an ' 'on-motherboard option, ' 'add-on cards are used as ' 'needed', 'choicecategory_id': 43896, 'comment': '', 'cost': 100.0, 'created': datetime.datetime(2015, 11, 27, 15, 0, 33, 330587), 'id': 57590, 'multiplier': 0, 'name': '4x GbE Network Port, RJ45', 'price': None, 'published': True, 'sortorder': 610, 'source': '', 'updated': datetime.datetime(2015, 11, 27, 15, 7, 44, 987146)}, 57591: {'blurb': '2x 10GbE Network Port, ' 'RJ45 - typically ' 'on-motherboard, add-on ' 'cards are used only as ' 'needed', 'choicecategory_id': 43896, 'comment': '', 'cost': 200.0, 'created': datetime.datetime(2015, 11, 27, 15, 5, 13, 205604), 'id': 57591, 'multiplier': 0, 'name': '2x 10GbE Network Port, ' 'RJ45', 'price': None, 'published': True, 'sortorder': 620, 'source': '', 'updated': datetime.datetime(2015, 11, 27, 15, 7, 45, 32413)}, 57592: {'blurb': '4x 10GbE Network Port, ' 'RJ45 - typically ' 'on-motherboard, add-on ' 'cards are used only as ' 'needed', 'choicecategory_id': 43896, 'comment': '', 'cost': 350.0, 'created': datetime.datetime(2015, 11, 27, 15, 8, 28, 961870), 'id': 57592, 'multiplier': 0, 'name': '4x 10GbE Network Port, ' 'RJ45', 'price': None, 'published': True, 'sortorder': 630, 'source': '', 'updated': datetime.datetime(2015, 11, 27, 15, 8, 28, 961892)}, 57596: {'blurb': '2x 10GbE Network Port, ' 'SFP+, typically ' 'on-motherboard, add-on ' 'cards are used only as ' 'needed', 'choicecategory_id': 43896, 'comment': '', 'cost': 200.0, 'created': datetime.datetime(2015, 11, 27, 16, 0, 4, 199684), 'id': 57596, 'multiplier': 0, 'name': '2x 10GbE Network Port, ' 'SFP+', 'price': None, 'published': True, 'sortorder': 625, 'source': '', 'updated': datetime.datetime(2015, 11, 27, 16, 0, 4, 199706)}, 59210: {'blurb': '10GBASE-T SFP+ ' 'transceiver module for ' 'CAT6A/CAT7 cable, ' 'copper, RJ-45 ' 'connector.\r\n', 'choicecategory_id': 43896, 'comment': 'Asif\r\n09 Mar 2018', 'cost': 250.0, 'created': datetime.datetime(2018, 3, 8, 17, 20, 54, 937092), 'id': 59210, 'multiplier': 0, 'name': '10GBase-T NIC, RJ45 ', 'price': None, 'published': True, 'sortorder': 630, 'source': 'https://www.amazon.com/10Gtek-SFP-10G-T-S-Compatible-10GBase-T-Transceiver/dp/B0', 'updated': datetime.datetime(2018, 3, 8, 17, 21, 42, 225437)}, 59211: {'blurb': 'GLC-T Cisco 1000BASE-T ' 'SFP Transceiver Module, ' 'RJ-45 connector.\r\n', 'choicecategory_id': 43896, 'comment': 'Asif\r\n09 Mar 2018', 'cost': 50.0, 'created': datetime.datetime(2018, 3, 8, 17, 42, 12, 335253), 'id': 59211, 'multiplier': 0, 'name': '1000GBase-T NIC, RJ45 ', 'price': None, 'published': True, 'sortorder': 630, 'source': 'https://www.amazon.com/GLC-T-Cisco-1000BASE-T-Transceiver-Module/dp/B0000C3GWT', 'updated': datetime.datetime(2018, 3, 8, 17, 42, 12, 335276)}, 59627: {'blurb': '2x 25GbE SFP28 ports via ' 'AOC-URN4-M2TS (Mellanox ' 'ConnectX-4 Lx EN).', 'choicecategory_id': 43896, 'comment': '30 DEC 2018,\r\nAsif.', 'cost': 0.0, 'created': datetime.datetime(2018, 12, 31, 11, 32, 25, 537110), 'id': 59627, 'multiplier': 0, 'name': '25GbE SFP28 Network port', 'price': None, 'published': True, 'sortorder': 620, 'source': '', 'updated': datetime.datetime(2018, 12, 31, 11, 48, 36, 475083)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 2, 24, 13, 27, 24, 366956), 'defaultchoice_id': 57589, 'id': 58183, 'name': 'Network Interfaces', 'option_id': 57588, 'product_id': 58172, 'published': True, 'qty': 1, 'required': True, 'single': False, 'updated': datetime.datetime(2016, 3, 9, 2, 19, 2, 997021)}), ('58174_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbed092490>, 'allowed_quantities': '', 'choices': {56718: {'blurb': 'Includes card(s), ' 'expanders, cables, ' 'adapters, etc to support ' 'the number of chosen ' 'drives - for external ' 'capability, please ask ' 'in "Notes" field, and we ' 'will contact you.', 'choicecategory_id': 43911, 'comment': 'Catch-all until more ' 'detail from Saeed and ' 'Robert', 'cost': 0.0, 'created': datetime.datetime(2015, 2, 20, 12, 25, 47, 420777), 'id': 56718, 'multiplier': None, 'name': 'LSI MegaRAID SAS / SATA ' 'multiport RAID Controller ' '& hardware', 'price': None, 'published': True, 'sortorder': 0, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 15, 10871)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 2, 24, 13, 27, 24, 335333), 'defaultchoice_id': 56718, 'id': 58174, 'name': 'RAID controller(s)', 'option_id': 56707, 'product_id': 58172, 'published': True, 'qty': 1, 'required': True, 'single': False, 'updated': datetime.datetime(2016, 3, 9, 2, 19, 3, 15259)}), ('58176_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbed092520>, '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)}, 31516: {'blurb': '', 'choicecategory_id': 43896, 'comment': '', 'cost': 135.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 31516, 'multiplier': None, 'name': 'Intel Dual Port Gigabit ' 'Ethernet card', 'price': None, 'published': True, 'sortorder': 723, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 50, 14, 297102)}, 57591: {'blurb': '2x 10GbE Network Port, ' 'RJ45 - typically ' 'on-motherboard, add-on ' 'cards are used only as ' 'needed', 'choicecategory_id': 43896, 'comment': '', 'cost': 200.0, 'created': datetime.datetime(2015, 11, 27, 15, 5, 13, 205604), 'id': 57591, 'multiplier': 0, 'name': '2x 10GbE Network Port, ' 'RJ45', 'price': None, 'published': True, 'sortorder': 620, 'source': '', 'updated': datetime.datetime(2015, 11, 27, 15, 7, 45, 32413)}, 57592: {'blurb': '4x 10GbE Network Port, ' 'RJ45 - typically ' 'on-motherboard, add-on ' 'cards are used only as ' 'needed', 'choicecategory_id': 43896, 'comment': '', 'cost': 350.0, 'created': datetime.datetime(2015, 11, 27, 15, 8, 28, 961870), 'id': 57592, 'multiplier': 0, 'name': '4x 10GbE Network Port, ' 'RJ45', 'price': None, 'published': True, 'sortorder': 630, 'source': '', 'updated': datetime.datetime(2015, 11, 27, 15, 8, 28, 961892)}, 57596: {'blurb': '2x 10GbE Network Port, ' 'SFP+, typically ' 'on-motherboard, add-on ' 'cards are used only as ' 'needed', 'choicecategory_id': 43896, 'comment': '', 'cost': 200.0, 'created': datetime.datetime(2015, 11, 27, 16, 0, 4, 199684), 'id': 57596, 'multiplier': 0, 'name': '2x 10GbE Network Port, ' 'SFP+', 'price': None, 'published': True, 'sortorder': 625, 'source': '', 'updated': datetime.datetime(2015, 11, 27, 16, 0, 4, 199706)}, 59627: {'blurb': '2x 25GbE SFP28 ports via ' 'AOC-URN4-M2TS (Mellanox ' 'ConnectX-4 Lx EN).', 'choicecategory_id': 43896, 'comment': '30 DEC 2018,\r\nAsif.', 'cost': 0.0, 'created': datetime.datetime(2018, 12, 31, 11, 32, 25, 537110), 'id': 59627, 'multiplier': 0, 'name': '25GbE SFP28 Network port', 'price': None, 'published': True, 'sortorder': 620, 'source': '', 'updated': datetime.datetime(2018, 12, 31, 11, 48, 36, 475083)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 2, 24, 13, 27, 24, 342928), 'defaultchoice_id': 30, 'id': 58176, 'name': 'PCI', 'option_id': 6, 'product_id': 58172, 'published': True, 'qty': 1, 'required': False, 'single': False, 'updated': datetime.datetime(2016, 2, 24, 13, 27, 24, 342943)}), ('58184_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbed0925b0>, '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)}, 16850: {'blurb': '', 'choicecategory_id': 43882, 'comment': None, 'cost': 35.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 16850, 'multiplier': None, 'name': 'Hard Disk Caddy ' '(MB122-AKGF)', 'price': 0.0, 'published': True, 'sortorder': 0, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 49, 15, 341896)}, 37155: {'blurb': '', 'choicecategory_id': 43911, 'comment': '', 'cost': 268.0, 'created': datetime.datetime(2008, 2, 28, 0, 0), 'id': 37155, 'multiplier': None, 'name': 'RAID card Battery Backup ' 'option ', 'price': None, 'published': True, 'sortorder': 3066, 'source': '', 'updated': datetime.datetime(2016, 1, 7, 12, 45, 59, 845044)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 2, 24, 13, 27, 24, 370224), 'defaultchoice_id': 30, 'id': 58184, 'name': 'Add-ons', 'option_id': 4086, 'product_id': 58172, 'published': True, 'qty': 1, 'required': False, 'single': False, 'updated': datetime.datetime(2016, 2, 24, 13, 27, 24, 370239)}), ('58179_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbed092640>, 'allowed_quantities': '', 'choices': {1075: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2003, 1, 23, 10, 30), 'id': 1075, 'multiplier': 0, 'name': 'Ubuntu Linux 19.04 Server ' 'Edition', 'price': 0.0, 'published': True, 'sortorder': 2103, 'source': '', 'updated': datetime.datetime(2019, 4, 24, 22, 1, 26, 855239)}, 4469: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 4469, 'multiplier': 1, 'name': 'OpenMandriva Linux', 'price': 0.0, 'published': True, 'sortorder': 1501, 'source': '', 'updated': datetime.datetime(2018, 1, 10, 14, 52, 22, 288849)}, 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)}, 14513: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2001, 1, 1, 0, 0), 'id': 14513, 'multiplier': 0, 'name': 'No OS - (tested with ' 'Ubuntu)', 'price': None, 'published': True, 'sortorder': 2701, 'source': '', 'updated': datetime.datetime(2018, 1, 10, 15, 4, 35, 279480)}, 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)}, 31725: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2006, 1, 24, 20, 0, 17), 'id': 31725, 'multiplier': 1, 'name': 'CentOS Linux 6', 'price': None, 'published': True, 'sortorder': 302, 'source': '', 'updated': datetime.datetime(2018, 1, 10, 14, 44, 14, 613274)}, 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)}, 32940: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2006, 1, 24, 20, 0, 17), 'id': 32940, 'multiplier': 0, 'name': 'Ubuntu Linux 18.04 LTS ' 'Server Edition', 'price': None, 'published': True, 'sortorder': 2101, 'source': '', 'updated': datetime.datetime(2018, 4, 29, 7, 49, 11, 645682)}, 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)}, 50022: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2011, 9, 28, 0, 0), 'id': 50022, 'multiplier': 1, 'name': 'CentOS Linux 7', 'price': None, 'published': True, 'sortorder': 301, 'source': '', 'updated': datetime.datetime(2018, 1, 10, 14, 43, 55, 935585)}, 50087: {'blurb': '', 'choicecategory_id': 43898, 'comment': 'cost $200 included in ' 'two models - X4X4 and ' 'NAS50 - JJW upd 5/5/14 ' 'repriced', 'cost': 200.0, 'created': datetime.datetime(2011, 10, 11, 0, 0), 'id': 50087, 'multiplier': 0, 'name': 'Ubuntu Server Advantage ' 'Essential (1 yr)', 'price': None, 'published': True, 'sortorder': 2121, 'source': '', 'updated': datetime.datetime(2018, 1, 10, 15, 1, 6, 459907)}, 54298: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2012, 8, 9, 18, 32, 27, 806408), 'id': 54298, 'multiplier': 1, 'name': 'FreeNAS', 'price': None, 'published': True, 'sortorder': 611, 'source': '', 'updated': datetime.datetime(2018, 1, 10, 14, 35, 53, 229662)}, 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)}, 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)}, 58991: {'blurb': '', 'choicecategory_id': 43898, 'comment': 'cloned from ' 'Mandriva->OpenMarndriva ' 'may 20, 2017 JJW', 'cost': 0.0, 'created': datetime.datetime(2017, 5, 20, 13, 13, 51, 964687), 'id': 58991, 'multiplier': 0, 'name': 'Mageia Linux', 'price': 0.0, 'published': True, 'sortorder': 1301, 'source': '', 'updated': datetime.datetime(2018, 1, 10, 15, 28, 38, 191097)}, 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)}, 59486: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2018, 4, 29, 9, 25, 14, 880664), 'id': 59486, 'multiplier': 0, 'name': 'Ubuntu Linux 20.04 LTS ' 'Server Edition', 'price': None, 'published': True, 'sortorder': 2107, 'source': '', 'updated': datetime.datetime(2020, 5, 3, 0, 59, 13, 782820)}, 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)}, 59716: {'blurb': '', 'choicecategory_id': 43898, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2019, 11, 10, 17, 3, 14, 655104), 'id': 59716, 'multiplier': 0, 'name': 'Ubuntu Linux 19.10 Server ' 'Edition', 'price': 0.0, 'published': True, 'sortorder': 2105, 'source': '', 'updated': datetime.datetime(2019, 11, 10, 17, 3, 14, 655124)}, 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)}, 59721: {'blurb': '', 'choicecategory_id': 43898, 'comment': '10 Oct. 2019,\r\nAsif.', 'cost': 0.0, 'created': datetime.datetime(2019, 11, 10, 17, 55, 23, 554117), 'id': 59721, 'multiplier': 1, 'name': 'CentOS Linux 8', 'price': None, 'published': True, 'sortorder': 300, 'source': '', 'updated': datetime.datetime(2019, 11, 10, 17, 55, 23, 554140)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 2, 24, 13, 27, 24, 353600), 'defaultchoice_id': 32940, 'id': 58179, 'name': 'Operating System', 'option_id': 55152, 'product_id': 58172, 'published': True, 'qty': 1, 'required': True, 'single': False, 'updated': datetime.datetime(2016, 3, 9, 2, 19, 3, 97628)}), ('58180_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbed0926d0>, '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)}, 55156: {'blurb': 'FreeNAS fork of the ' 'original FreeNAS, ' 'trademark now owned by ' "IX Systems; is it's own " 'OS', 'choicecategory_id': 55154, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2013, 11, 7, 20, 7, 33, 516666), 'id': 55156, 'multiplier': None, 'name': 'FreeNAS (Requires FreeNAS ' 'OS)', 'price': None, 'published': True, 'sortorder': 4192, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 27, 607427)}, 55157: {'blurb': "The original author's " 'fork of FreeNAS after IX ' 'Systems purchased the ' 'trademark, based on ' 'FreeBSD 9.x', 'choicecategory_id': 55154, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2013, 11, 7, 20, 11, 14, 878592), 'id': 55157, 'multiplier': None, 'name': 'NAS4Free (Requires ' 'FreeBSD OS)', 'price': None, 'published': True, 'sortorder': 4193, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 27, 649968)}, 55158: {'blurb': 'Requires Debian', 'choicecategory_id': 55154, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2013, 11, 7, 20, 12, 45, 96453), 'id': 55158, 'multiplier': None, 'name': 'OpenMediaVault (requires ' 'Debian OS)', 'price': None, 'published': True, 'sortorder': 4194, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 27, 707725)}, 55266: {'blurb': 'OpenStack private / ' 'hybrid cloud software', 'choicecategory_id': 56739, 'comment': 'Catch-all for now - ' '2/24/15 JJW', 'cost': 0.0, 'created': datetime.datetime(2014, 2, 13, 16, 39, 21, 721201), 'id': 55266, 'multiplier': None, 'name': 'OpenStack', 'price': None, 'published': True, 'sortorder': 4190, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 27, 524754)}, 56740: {'blurb': 'OpenFiler NAS software', 'choicecategory_id': 55154, 'comment': 'Popup add NFG 2/13/14 ' 'JJW', 'cost': 0.0, 'created': datetime.datetime(2015, 2, 24, 17, 11, 37, 348832), 'id': 56740, 'multiplier': None, 'name': 'OpenFiler', 'price': None, 'published': True, 'sortorder': 4196, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 27, 991862)}, 56741: {'blurb': 'CloudStack private / ' 'hybrid cloud software', 'choicecategory_id': 56739, 'comment': 'Generic top-level ' 'softwares, to invite ' 'leads, and consulting ' '- 2/24/15 JJW', 'cost': 0.0, 'created': datetime.datetime(2015, 2, 24, 17, 13, 17, 64534), 'id': 56741, 'multiplier': None, 'name': 'CloudStack', 'price': None, 'published': True, 'sortorder': 4190, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 27, 572909)}, 56742: {'blurb': 'Eucalyptus private / ' 'hybrid cloud software', 'choicecategory_id': 56739, 'comment': 'Generic top-level ' 'softwares, to invite ' 'leads, and consulting ' '- 2/24/15 JJW', 'cost': 0.0, 'created': datetime.datetime(2015, 2, 24, 17, 14, 10, 881653), 'id': 56742, 'multiplier': None, 'name': 'Eucalyptus', 'price': None, 'published': True, 'sortorder': 4196, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 28, 86626)}, 56743: {'blurb': 'OpenAttic private / ' 'hybrid cloud & NAS / DFS ' 'software', 'choicecategory_id': 56739, 'comment': 'Generic top-level ' 'softwares, to invite ' 'leads, and consulting ' '- 2/24/15 JJW', 'cost': 0.0, 'created': datetime.datetime(2015, 2, 24, 17, 14, 53, 787430), 'id': 56743, 'multiplier': None, 'name': 'OpenAttic', 'price': None, 'published': True, 'sortorder': 4190, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 27, 436991)}, 56744: {'blurb': 'GlusterFS private / ' 'hybrid cloud & DFS ' 'software - a clustered ' 'file-system capable of ' 'scaling to several\r\n' 'peta-bytes. It ' 'aggregates various ' 'storage bricks over ' 'Infiniband RDMA\r\n' 'or TCP/IP interconnect ' 'into one large parallel ' 'network file\r\n' 'system. GlusterFS is one ' 'of the most ' 'sophisticated file ' 'system in\r\n' 'terms of features and ' 'extensibility. It ' 'borrows a powerful ' 'concept\r\n' 'called Translators from ' 'GNU Hurd kernel. Much of ' 'the code in GlusterFS\r\n' 'is in userspace and ' 'easily manageable.', 'choicecategory_id': 56739, 'comment': 'Generic top-level ' 'softwares, to invite ' 'leads, and consulting ' '- 2/24/15 JJW', 'cost': 0.0, 'created': datetime.datetime(2015, 2, 24, 17, 15, 35, 28754), 'id': 56744, 'multiplier': 0, 'name': 'GlusterFS', 'price': None, 'published': True, 'sortorder': 4196, 'source': '', 'updated': datetime.datetime(2015, 11, 26, 21, 40, 58, 471448)}, 56745: {'blurb': 'OwnCloud private / ' 'hybrid cloud storage ' 'software', 'choicecategory_id': 56739, 'comment': 'Generic top-level ' 'softwares, to invite ' 'leads, and consulting ' '- 2/24/15 JJW', 'cost': 0.0, 'created': datetime.datetime(2015, 2, 24, 17, 16, 46, 541972), 'id': 56745, 'multiplier': None, 'name': 'OwnCloud', 'price': None, 'published': True, 'sortorder': 4196, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 28, 248508)}, 56746: {'blurb': 'Seafile private / hybrid ' 'cloud storage software', 'choicecategory_id': 56739, 'comment': 'Generic top-level ' 'softwares, to invite ' 'leads, and consulting ' '- 2/24/15 JJW', 'cost': 0.0, 'created': datetime.datetime(2015, 2, 24, 17, 17, 8, 605312), 'id': 56746, 'multiplier': None, 'name': 'Seafile', 'price': None, 'published': True, 'sortorder': 4196, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 28, 302315)}, 56747: {'blurb': 'OpenNebula private / ' 'hybrid cloud software', 'choicecategory_id': 56739, 'comment': 'Generic top-level ' 'softwares, to invite ' 'leads, and consulting ' '- 2/24/15 JJW', 'cost': 0.0, 'created': datetime.datetime(2015, 2, 24, 17, 18, 42, 327137), 'id': 56747, 'multiplier': None, 'name': 'OpenNebula', 'price': None, 'published': True, 'sortorder': 4196, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 27, 952566)}, 56748: {'blurb': 'Apache Hadoop BigData / ' 'private / hybrid cloud ' 'software', 'choicecategory_id': 56739, 'comment': 'Generic top-level ' 'softwares, to invite ' 'leads, and consulting ' '- 2/24/15 JJW', 'cost': 0.0, 'created': datetime.datetime(2015, 2, 24, 17, 19, 17, 39508), 'id': 56748, 'multiplier': None, 'name': 'Apache Hadoop', 'price': None, 'published': True, 'sortorder': 4196, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 27, 756125)}, 56791: {'blurb': 'Ceph SDS ' '(Software-defined-storage) ' 'Object / Block / Cluster ' 'storage system software ' 'preinstalled & ' 'configured to your specs', 'choicecategory_id': 56739, 'comment': 'Generic top-level ' 'softwares, to invite ' 'leads, and consulting ' '- 3/25/15 JJW\r\n' '\r\n' 'Ceph software runs on ' 'commodity hardware. ' 'The system is designed ' 'to be both ' 'self-healing and ' 'self-managing and ' 'strives to reduce both ' 'administrator and ' 'budget overhead.', 'cost': 0.0, 'created': datetime.datetime(2015, 3, 25, 15, 34, 26, 269922), 'id': 56791, 'multiplier': None, 'name': 'Ceph Object/Block/Cluster ' 'storage', 'price': None, 'published': True, 'sortorder': 4196, 'source': '', 'updated': datetime.datetime(2015, 10, 6, 12, 52, 28, 328530)}, 57527: {'blurb': 'Samba / CIFS turnkey ' 'Windows-network-ready ' 'file server, with NFS, ' 'rsync, and SFTP ' 'installed', 'choicecategory_id': 55154, 'comment': '', 'cost': 0.0, 'created': datetime.datetime(2015, 11, 21, 12, 45, 51, 606818), 'id': 57527, 'multiplier': 0, 'name': 'File server - SMB/CIFS, ' 'NFS, SFTP, AFP, DAV, FTP ' '& others on request', 'price': None, 'published': True, 'sortorder': 4192, 'source': '', 'updated': datetime.datetime(2015, 11, 26, 20, 52, 52, 595992)}, 57582: {'blurb': 'MooseFS private / hybrid ' 'cloud & DFS software\r\n', 'choicecategory_id': 56739, 'comment': 'Generic top-level ' 'softwares, to invite ' 'leads, and consulting ' '- 2/24/15 JJW', 'cost': 0.0, 'created': datetime.datetime(2015, 11, 26, 21, 40, 5, 329486), 'id': 57582, 'multiplier': 0, 'name': 'MooseFS', 'price': None, 'published': True, 'sortorder': 4196, 'source': '', 'updated': datetime.datetime(2015, 11, 26, 21, 40, 5, 329508)}, 57583: {'blurb': 'LizarDFS private / ' 'hybrid cloud & DFS ' 'software\r\n', 'choicecategory_id': 56739, 'comment': 'Generic top-level ' 'softwares, to invite ' 'leads, and consulting ' '- 2/24/15 JJW', 'cost': 0.0, 'created': datetime.datetime(2015, 11, 26, 21, 41, 39, 116464), 'id': 57583, 'multiplier': 0, 'name': 'LizardFS', 'price': None, 'published': True, 'sortorder': 4196, 'source': '', 'updated': datetime.datetime(2015, 11, 26, 21, 41, 39, 116486)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 2, 24, 13, 27, 24, 357059), 'defaultchoice_id': 57527, 'id': 58180, 'name': 'Cloud & NAS Software', 'option_id': 55153, 'product_id': 58172, 'published': True, 'qty': 1, 'required': True, 'single': False, 'updated': datetime.datetime(2016, 3, 9, 2, 19, 3, 148861)}), ('58173_1', {'_state': <django.db.models.base.ModelState object at 0x7fbbed092760>, '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)}}, 'choices_orderby': 'cost', 'created': datetime.datetime(2016, 2, 24, 13, 27, 24, 314314), 'defaultchoice_id': 18049, 'id': 58173, 'name': 'Warranty', 'option_id': 18048, 'product_id': 58172, 'published': True, 'qty': 1, 'required': True, 'single': True, 'updated': datetime.datetime(2016, 3, 9, 2, 19, 3, 182900)})]), 'published': True, 'qty': 1, 'sku': 'NAS60', 'sortorder': 5090, 'summary': '', 'title': '', 'totprice': 16995.0, 'updated': datetime.datetime(2020, 1, 6, 18, 20, 2, 303441), 'weight': 260}

No GET data

No POST data

SQL queries from 1 connection

  •   default 175.43 ms (142 queries including 140 similar and 130 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('NAS60')
 ORDER BY
"products"."sortorder" ASC, "products"."sku" ASC
SELECT ••• FROM "products" WHERE UPPER("products"."sku"::text) = UPPER('NAS60') ORDER BY "products"."sortorder" ASC, "products"."sku" ASC
7.996602453028913%
14.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(211)
  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" = 9529
SELECT ••• FROM "categories" WHERE "categories"."id" = 9529
2.833554173886454%
4.97

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(211)
  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" = 58172
 ORDER BY
"options"."sortorder" ASC
SELECT ••• FROM "prodopts" INNER JOIN "options" ON ("prodopts"."optionid" = "options"."id") WHERE "prodopts"."productid" = 58172 ORDER BY "options"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
5.639520266367683%
9.89

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(211)
  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" = 58178
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58178
  30 similar queries.   Duplicated 2 times.
1.2834573437977779%
2.25

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(211)
  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" = 58190
SELECT ••• FROM "choices" WHERE "choices"."id" = 58190
  18 similar queries.   Duplicated 2 times.
0.8582203648965447%
1.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(211)
  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 (58190)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (58190) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  8 similar queries.   Duplicated 2 times.
0.6644242856657493%
1.17

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(211)
  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" = 9
SELECT ••• FROM "options" WHERE "options"."id" = 9
  30 similar queries.   Duplicated 2 times.
0.5383073420990045%
0.94

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(211)
  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" = 58186
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58186
  30 similar queries.   Duplicated 2 times.
0.7606428158869296%
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(211)
  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" = 42290
SELECT ••• FROM "choices" WHERE "choices"."id" = 42290
  18 similar queries.   Duplicated 2 times.
0.3193694152821663%
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(211)
  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 (42290)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (42290) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  8 similar queries.   Duplicated 2 times.
0.4316243672068766%
0.76

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(211)
  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" = 6520
SELECT ••• FROM "options" WHERE "options"."id" = 6520
  30 similar queries.   Duplicated 2 times.
0.367070974756226%
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(211)
  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" = 59753
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 59753
  30 similar queries.   Duplicated 2 times.
0.4688614820099888%
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(211)
  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" = 58827
SELECT ••• FROM "options" WHERE "options"."id" = 58827
  30 similar queries.   Duplicated 2 times.
0.2780552441137499%
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(211)
  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" = 58827
 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" = 58827 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  24 similar queries.   Duplicated 2 times.
1.8096694186797133%
3.17

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(211)
  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 (56451, 56450, 56449, 56448, 56447, 56444, 56445, 56442, 56440, 56443, 56438, 56437, 56436, 56434, 56433, 56432, 56431, 56430, 59095, 59103, 59104, 59098, 59099, 59100, 59101, 59102, 59116, 59086, 59087, 59097, 59092, 59117, 59089, 59093, 59094, 59090)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (56451, 56450, 56449, 56448, 56447, 56444, 56445, 56442, 56440, 56443, 56438, 56437, 56436, 56434, 56433, 56432, 56431, 56430, 59095, 59103, 59104, 59098, 59099, 59100, 59101, 59102, 59116, 59086, 59087, 59097, 59092, 59117, 59089, 59093, 59094, 59090) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
1.574966873917032%
2.76

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(211)
  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" = 59752
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 59752
  30 similar queries.   Duplicated 2 times.
0.5504026093160739%
0.97

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(211)
  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" = 58362
SELECT ••• FROM "options" WHERE "options"."id" = 58362
  30 similar queries.   Duplicated 2 times.
0.25318520028539393%
0.44

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(211)
  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" = 58362
 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" = 58362 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  24 similar queries.   Duplicated 2 times.
0.4145007304725988%
0.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(211)
  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 (56620, 56621, 56622, 56623, 56624, 59225)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (56620, 56621, 56622, 56623, 56624, 59225) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  4 similar queries.   Duplicated 2 times.
0.3256209017089661%
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(211)
  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" = 58182
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58182
  30 similar queries.   Duplicated 2 times.
0.3594604695409914%
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(211)
  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" = 56627
SELECT ••• FROM "options" WHERE "options"."id" = 56627
  30 similar queries.   Duplicated 2 times.
0.27465769714266297%
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(211)
  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" = 56627
 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" = 56627 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  24 similar queries.   Duplicated 2 times.
0.6364284986239934%
1.12

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(211)
  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 (33139, 19247, 34644, 44729)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (33139, 19247, 34644, 44729) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.37563279312336495%
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(211)
  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" = 58185
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58185
  30 similar queries.   Duplicated 2 times.
0.3839228077328169%
0.67

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(211)
  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" = 11959
SELECT ••• FROM "options" WHERE "options"."id" = 11959
  30 similar queries.   Duplicated 2 times.
0.2386436992491421%
0.42

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(211)
  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" = 11959
 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" = 11959 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  24 similar queries.   Duplicated 2 times.
0.43284748411646795%
0.76

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(211)
  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 (9279, 11961, 11962, 11963, 11964, 57253, 57254, 56231, 37132, 57255, 57256, 56241, 16588)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (9279, 11961, 11962, 11963, 11964, 57253, 57254, 56231, 37132, 57255, 57256, 56241, 16588) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.3695172085754086%
0.65

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(211)
  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" = 59929
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 59929
  30 similar queries.   Duplicated 2 times.
0.3653042503312608%
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(211)
  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" = 58845
SELECT ••• FROM "options" WHERE "options"."id" = 58845
  30 similar queries.   Duplicated 2 times.
0.2404104236741073%
0.42

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(211)
  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" = 58845
 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" = 58845 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  24 similar queries.   Duplicated 2 times.
0.8613461081099446%
1.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(211)
  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 (59478, 59392, 59393, 59394, 59395, 56723, 59396, 59397, 59426, 58135, 58134, 59427, 58133, 58990, 59428, 59735, 59734, 56654, 56655, 58039, 58986, 59384, 59730, 59731, 58221, 58220, 58224, 58222, 58223, 59386, 59387, 59388, 59429, 59430, 59431, 59432, 59433, 59434, 59435, 59715, 59436, 59437, 59438, 59439, 59440, 59441, 59442, 59728, 59729)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (59478, 59392, 59393, 59394, 59395, 56723, 59396, 59397, 59426, 58135, 58134, 59427, 58133, 58990, 59428, 59735, 59734, 56654, 56655, 58039, 58986, 59384, 59730, 59731, 58221, 58220, 58224, 58222, 58223, 59386, 59387, 59388, 59429, 59430, 59431, 59432, 59433, 59434, 59435, 59715, 59436, 59437, 59438, 59439, 59440, 59441, 59442, 59728, 59729) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
1.5019875649780858%
2.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(211)
  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" = 58181
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58181
  30 similar queries.   Duplicated 2 times.
0.3600040770563653%
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(211)
  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" = 56242
SELECT ••• FROM "options" WHERE "options"."id" = 56242
  30 similar queries.   Duplicated 2 times.
0.9843373084632895%
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(211)
  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" = 56242
 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" = 56242 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  24 similar queries.   Duplicated 2 times.
0.5345020894913872%
0.94

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(211)
  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 (58369, 56230, 59640, 59641, 59642, 59643, 59321, 59322, 59323, 59324, 59325, 59326, 59327, 59328, 59329, 59330, 56714)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (58369, 56230, 59640, 59641, 59642, 59643, 59321, 59322, 59323, 59324, 59325, 59326, 59327, 59328, 59329, 59330, 56714) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.4130058098053206%
0.72

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(211)
  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" = 58183
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58183
  30 similar queries.   Duplicated 2 times.
0.34981143614310467%
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(211)
  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" = 57588
SELECT ••• FROM "options" WHERE "options"."id" = 57588
  30 similar queries.   Duplicated 2 times.
0.23402303536846397%
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(211)
  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" = 57588
 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" = 57588 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  24 similar queries.   Duplicated 2 times.
0.3922128223422689%
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(211)
  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 (57589, 57590, 59627, 57591, 57596, 59211, 59210, 57592, 16588)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (57589, 57590, 59627, 57591, 57596, 59211, 59210, 57592, 16588) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.3382597764414093%
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(211)
  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" = 58174
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58174
  30 similar queries.   Duplicated 2 times.
0.32861074304352256%
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(211)
  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" = 56707
SELECT ••• FROM "options" WHERE "options"."id" = 56707
  30 similar queries.   Duplicated 2 times.
0.41735466992831177%
0.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(211)
  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" = 56707
 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" = 56707 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  24 similar queries.   Duplicated 2 times.
0.47810280977134506%
0.84

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(211)
  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 (56718)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (56718) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  8 similar queries.   Duplicated 2 times.
0.3195053171610097%
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(211)
  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" = 58176
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58176
  30 similar queries.   Duplicated 2 times.
0.34668569292970475%
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(211)
  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" = 6
SELECT ••• FROM "options" WHERE "options"."id" = 6
  30 similar queries.   Duplicated 2 times.
0.24108993306832466%
0.42

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(211)
  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" = 6
 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" = 6 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  24 similar queries.   Duplicated 2 times.
0.7174260184147045%
1.26

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(211)
  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, 59627, 57591, 57596, 57592, 31516)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (30, 59627, 57591, 57596, 57592, 31516) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  4 similar queries.   Duplicated 2 times.
0.4195290999898074%
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(211)
  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" = 58184
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58184
  30 similar queries.   Duplicated 2 times.
0.3931641354941732%
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(211)
  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" = 4086
SELECT ••• FROM "options" WHERE "options"."id" = 4086
  30 similar queries.   Duplicated 2 times.
0.25413651343729826%
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(211)
  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" = 4086
 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" = 4086 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  24 similar queries.   Duplicated 2 times.
0.3957462711921992%
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(211)
  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, 16850, 37155)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (30, 16850, 37155) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.2834913192674889%
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(211)
  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" = 58179
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58179
  30 similar queries.   Duplicated 2 times.
0.33391091631841807%
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(211)
  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" = 55152
SELECT ••• FROM "options" WHERE "options"."id" = 55152
  30 similar queries.   Duplicated 2 times.
0.22994597900315972%
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(211)
  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" = 55152
 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" = 55152 ORDER BY "choices"."sortorder" ASC, "choices"."cost" ASC
  24 similar queries.   Duplicated 2 times.
0.8277783440356062%
1.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(211)
  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 (31147, 59721, 50022, 31725, 31809, 12160, 12161, 59718, 59719, 59189, 59493, 59193, 59495, 59496, 54298, 8261, 9190, 8259, 8260, 56893, 58991, 4469, 4470, 58976, 58975, 32940, 35523, 1075, 35522, 59716, 59717, 59486, 59487, 50087, 14513)
 ORDER BY
"choices"."cost" ASC, "choices"."sortorder" ASC
SELECT ••• FROM "choices" WHERE "choices"."id" IN (31147, 59721, 50022, 31725, 31809, 12160, 12161, 59718, 59719, 59189, 59493, 59193, 59495, 59496, 54298, 8261, 9190, 8259, 8260, 56893, 58991, 4469, 4470, 58976, 58975, 32940, 35523, 1075, 35522, 59716, 59717, 59486, 59487, 50087, 14513) ORDER BY "choices"."cost" ASC, "choices"."sortorder" ASC
  2 similar queries.   Duplicated 2 times.
0.6108789454014202%
1.07

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(211)
  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" = 58180
SELECT ••• FROM "choices" INNER JOIN "prodoptchoices" ON ("choices"."id" = "prodoptchoices"."choiceid") WHERE "prodoptchoices"."productoptionid" = 58180
  30 similar queries.   Duplicated 2 times.
0.33635715013760065%
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(211)
  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_proce