Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple attachments naming collision #77

Open
tyliec opened this issue Mar 7, 2024 · 0 comments
Open

Multiple attachments naming collision #77

tyliec opened this issue Mar 7, 2024 · 0 comments
Labels

Comments

@tyliec
Copy link
Member

tyliec commented Mar 7, 2024

Describe the bug

In some cases, the agency responds with multiple attachments in an email response named the same thing (i.e. AttachedImage). This causes an error when the user tries to download them - as the platform gets confused as to which attachment the user is requesting.

Error Summary
From: "UIPA.org Administrators" <[info@foi.uipa.org](mailto:info@foi.uipa.org)>
Subject: [Froide] ERROR (EXTERNAL IP): Internal Server Error: /files/foi/4050/AttachedImage
Date: March 5, 2024 at 11:07:12 AM HST
To: [admin@uipa.org](mailto:admin@uipa.org), [ryan@codeforhawaii.org](mailto:ryan@codeforhawaii.org)
Reply-To: [info@uipa.org](mailto:info@uipa.org)

Internal Server Error: /files/foi/4050/AttachedImage

MultipleObjectsReturned at /files/foi/4050/AttachedImage
get() returned more than one FoiAttachment -- it returned 5!

Request Method: GET
Request URL: [https://uipa.org/files/foi/4050/AttachedImage](https://urldefense.com/v3/__https://uipa.org/files/foi/4050/AttachedImage__;!!PvDODwlR4mBZyAb0!Wue2czg32XxfDieDKL5HOvTYIO4s_EmFHvvb2nM4h68yzQ69hBW2slztdPMPoVBgOY5r3fSD_MxcXQ$)
Django Version: 1.10.2
Python Executable: /usr/local/bin/uwsgi
Python Version: 2.7.6
Python Path: ['.', '', '/var/www/applications/uipa_org/venvs/releases/20171206105506Z/src/django-overextends', '/var/www/applications/uipa_org/venvs/releases/20171206105506Z/src/froide', '/var/www/applications/uipa_org/venvs/current/lib/python2.7', '/var/www/applications/uipa_org/venvs/current/lib/python2.7/plat-x86_64-linux-gnu', '/var/www/applications/uipa_org/venvs/current/lib/python2.7/lib-tk', '/var/www/applications/uipa_org/venvs/current/lib/python2.7/lib-old', '/var/www/applications/uipa_org/venvs/current/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/www/applications/uipa_org/venvs/current/local/lib/python2.7/site-packages', '/var/www/applications/uipa_org/app/releases/20171206105506Z', '/var/www/applications/uipa_org/venvs/releases/20171206105506Z/src/froide', '/var/www/applications/uipa_org/venvs/releases/20171206105506Z/src/froide/..']
Server time: Tue, 5 Mar 2024 11:07:09 -1000
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django_comments',
'django.contrib.flatpages',
'django.contrib.sitemaps',
'haystack',
'taggit',
'floppyforms',
'overextends',
'tastypie',
'storages',
'compressor',
'froide.foirequest',
'froide.foirequestfollower',
'froide.frontpage',
'froide.publicbody',
'froide.account',
'froide.redaction',
'froide.foisite',
'froide.helper',
'uipa_org.theme',
'celery_haystack',
'djcelery_email',
'django.contrib.redirects',
'uipa_org.uipa_constants',
'uipa_org.theme.templatetags.uipa_extras',
'tinymce',
'raven.contrib.django.raven_compat']
Installed Middleware:
[u'raven.contrib.django.middleware.SentryMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
'django.contrib.redirects.middleware.RedirectFallbackMiddleware',
'froide.account.middleware.AcceptNewTermsMiddleware']


Traceback:  

File "/var/www/applications/uipa_org/venvs/current/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner
 39.             response = get_response(request)

File "/var/www/applications/uipa_org/venvs/current/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response
 249.             response = self._get_response(request)

File "/var/www/applications/uipa_org/venvs/current/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
 187.                 response = self.process_exception_by_middleware(e, request)

File "/var/www/applications/uipa_org/venvs/current/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
 185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/var/www/applications/uipa_org/venvs/releases/20171206105506Z/src/froide/froide/foirequest/views.py" in auth_message_attachment
 890.         name=attachment_name)

File "/var/www/applications/uipa_org/venvs/current/local/lib/python2.7/site-packages/django/shortcuts.py" in get_object_or_404
 85.         return queryset.get(*args, **kwargs)

File "/var/www/applications/uipa_org/venvs/current/local/lib/python2.7/site-packages/django/db/models/query.py" in get
 389.             (self.model._meta.object_name, num)

Exception Type: MultipleObjectsReturned at /files/foi/4050/AttachedImage
Exception Value: get() returned more than one FoiAttachment -- it returned 5!
Request information:
USER: s.steiner

GET: No GET data

POST: No POST data

FILES: No FILES data

COOKIES:
sessionid = 'f4j6ma6wl9pfit5m3u3qjt3u0fzcov6i'
_ga = 'GA1.2.287914878.1696440220'
_gid = 'GA1.2.8195141.1709671900'
_gat = '1'

META:
CONTENT_LENGTH = ''
CONTENT_TYPE = ''
DOCUMENT_ROOT = '/var/www/applications/uipa_org/app/current'
HTTPS = 'on'
HTTP_ACCEPT = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8'
HTTP_ACCEPT_ENCODING = 'gzip, deflate, br'
HTTP_ACCEPT_LANGUAGE = 'en-US,en;q=0.5'
HTTP_CONNECTION = 'keep-alive'
HTTP_COOKIE = '_ga=GA1.2.287914878.1696440220; sessionid=f4j6ma6wl9pfit5m3u3qjt3u0fzcov6i; _gid=GA1.2.8195141.1709671900; _gat=1'
HTTP_DNT = '1'
HTTP_HOST = '[uipa.org](http://uipa.org/)'
HTTP_REFERER = '[https://uipa.org/request/production-and-injection-reports-puna-geothermal-venture-2/](https://urldefense.com/v3/__https://uipa.org/request/production-and-injection-reports-puna-geothermal-venture-2/__;!!PvDODwlR4mBZyAb0!Wue2czg32XxfDieDKL5HOvTYIO4s_EmFHvvb2nM4h68yzQ69hBW2slztdPMPoVBgOY5r3fQOTrv3RA$)'
HTTP_SEC_FETCH_DEST = 'document'
HTTP_SEC_FETCH_MODE = 'navigate'
HTTP_SEC_FETCH_SITE = 'same-origin'
HTTP_SEC_FETCH_USER = '?1'
HTTP_UPGRADE_INSECURE_REQUESTS = '1'
HTTP_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0'
Host = '[uipa.org](http://uipa.org/)'
PATH_INFO = u'/files/foi/4050/AttachedImage'
QUERY_STRING = ''
REMOTE_ADDR = '147.81.46.99'
REMOTE_PORT = '62190'
REQUEST_METHOD = 'GET'
REQUEST_SCHEME = 'https'
REQUEST_URI = '/files/foi/4050/AttachedImage'
SCRIPT_NAME = u''
SERVER_NAME = '[uipa.org](http://uipa.org/)'
SERVER_PORT = '443'
SERVER_PROTOCOL = 'HTTP/1.1'
X-Forwarded-For = '147.81.46.99'
X-Forwarded-Proto = ''
X-Real-IP = '147.81.46.99'
uwsgi.core = 23
uwsgi.node = 'CBLAW'
uwsgi.version = '2.0.11.1'
wsgi.errors = <open file 'wsgi_errors', mode 'w' at 0x7fc84587eae0>
wsgi.file_wrapper = ''
wsgi.input = <uwsgi._Input object at 0x7fc800544258>
wsgi.multiprocess = False
wsgi.multithread = True
wsgi.run_once = False
wsgi.url_scheme = 'https'
wsgi.version =

Settings:
Using settings module uipa_org.settings
ABSOLUTE_URL_OVERRIDES = {}
ADMINS = [('Admin', '[admin@uipa.org](mailto:admin@uipa.org)'), ('Ryan', '[ryan@codeforhawaii.org](mailto:ryan@codeforhawaii.org)')]
ALLOWED_HOSTS =
APPEND_SLASH = True
AUTHENTICATION_BACKENDS = ['froide.helper.auth.EmailBackend', 'django.contrib.auth.backends.ModelBackend']
AUTH_PASSWORD_VALIDATORS = u'********************'
AUTH_USER_MODEL = 'account.User'
AWS_ACCESS_KEY_ID = u'********************'
AWS_HEADERS = {'Expires': 'Thu, 31 Dec 2099 20:00:00 GMT', 'Cache-Control': 'max-age=94608000'}
AWS_IS_GZIPPED = True
AWS_QUERYSTRING_AUTH = False
AWS_S3_CALLING_FORMAT = 'boto.s3.connection.OrdinaryCallingFormat'
AWS_S3_CUSTOM_DOMAIN = '[uipa-prod-media.s3-us-west-1.amazonaws.com](http://uipa-prod-media.s3-us-west-1.amazonaws.com/)'
AWS_S3_FILE_OVERWRITE = False
AWS_S3_HOST = '[s3-us-west-1.amazonaws.com](http://s3-us-west-1.amazonaws.com/)'
AWS_S3_SECURE_URLS = True
AWS_SECRET_ACCESS_KEY = u'********************'
AWS_STORAGE_BUCKET_NAME = 'uipa-prod-media'
BROKER_URL = 'amqp://uipa:q2131H8qUA0BW1aYl3l*8RPbzV78^9W*1IUsJvGjnaDbpfCpuNH&V5^4ZyYyyWyy@localhost:5672/prod_uipa'
CACHES = {'default': {'LOCATION': 'production-uipa', 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
CACHE_MIDDLEWARE_ALIAS = u'default'
CACHE_MIDDLEWARE_KEY_PREFIX = u'********************'
CACHE_MIDDLEWARE_SECONDS = 600
CELERYBEAT_SCHEDULE = {'classification-reminder': {'task': 'froide.foirequest.tasks.classification_reminder', 'schedule': <crontab: 0 7 6 * * (m/h/d/dM/MY)>}, 'detect-overdue': {'task': 'froide.foirequest.tasks.detect_overdue', 'schedule': <crontab: 0 0 * * * (m/h/d/dM/MY)>}, 'uipa-make_public_private': {'task': 'uipa_org.tasks.make_private_public', 'schedule': <crontab: 0 0 * * * (m/h/d/dM/MY)>}, 'update-foirequestfollowers': {'task': 'froide.foirequestfollower.tasks.batch_update', 'schedule': <crontab: 0 0 * * * (m/h/d/dM/MY)>}, 'fetch-mail': {'task': 'froide.foirequest.tasks.fetch_mail', 'schedule': <crontab: * * * * * (m/h/d/dM/MY)>}, 'detect-asleep': {'task': 'froide.foirequest.tasks.detect_asleep', 'schedule': <crontab: 0 0 * * * (m/h/d/dM/MY)>}, 'uipa-deferred_message_notification': {'task': 'uipa_org.tasks.deferred_message_notification', 'schedule': <crontab: 0 6 * * * (m/h/d/dM/MY)>}, 'uipa-private_public_reminder': {'task': 'uipa_org.tasks.private_public_reminder', 'schedule': <crontab: 0 0 * * * (m/h/d/dM/MY)>}}
CELERY_ALWAYS_EAGER = True
CELERY_HAYSTACK_COMMAND_AGE = None
CELERY_HAYSTACK_COMMAND_APPS = []
CELERY_HAYSTACK_COMMAND_BATCH_SIZE = None
CELERY_HAYSTACK_COMMAND_REMOVE = False
CELERY_HAYSTACK_COMMAND_VERBOSITY = 1
CELERY_HAYSTACK_COMMAND_WORKERS = 0
CELERY_HAYSTACK_COUNTDOWN = 0
CELERY_HAYSTACK_DEFAULT_ALIAS = u'default'
CELERY_HAYSTACK_DEFAULT_TASK = 'celery_haystack.tasks.CeleryHaystackSignalHandler'
CELERY_HAYSTACK_MAX_RETRIES = 1
CELERY_HAYSTACK_QUEUE = None
CELERY_HAYSTACK_RETRY_DELAY = 300
CELERY_HAYSTACK_TRANSACTION_SAFE = True
CELERY_IMPORTS = 'uipa_org.tasks'
CELERY_RESULT_BACKEND = 'rpc'
CELERY_RESULT_PERSISTENT = True
CELERY_ROUTES = {'froide.foirequest.tasks.fetch_mail': {'queue': 'emailfetch'}}
CELERY_TIMEZONE = 'Pacific/Honolulu'
COMPRESS_CACHEABLE_PRECOMPILERS =
COMPRESS_CACHE_BACKEND = u'default'
COMPRESS_CACHE_KEY_FUNCTION = u'********************'
COMPRESS_CLEAN_CSS_ARGUMENTS = u''
COMPRESS_CLEAN_CSS_BINARY = u'cleancss'
COMPRESS_CLOSURE_COMPILER_ARGUMENTS = u''
COMPRESS_CLOSURE_COMPILER_BINARY = u'java -jar compiler.jar'
COMPRESS_CSS_COMPRESSOR = u'compressor.css.CssCompressor'
COMPRESS_CSS_FILTERS = ['compressor.filters.css_default.CssAbsoluteFilter', 'compressor.filters.cssmin.CSSMinFilter']
COMPRESS_CSS_HASHING_METHOD = u'mtime'
COMPRESS_DATA_URI_MAX_SIZE = 1024
COMPRESS_DEBUG_TOGGLE = None
COMPRESS_ENABLED = True
COMPRESS_JINJA2_GET_ENVIRONMENT = <function JINJA2_GET_ENVIRONMENT at 0x7fc841121b18>
COMPRESS_JS_COMPRESSOR = u'compressor.js.JsCompressor'
COMPRESS_JS_FILTERS = ['compressor.filters.jsmin.JSMinFilter']
COMPRESS_MINT_DELAY = 30
COMPRESS_MTIME_DELAY = 10
COMPRESS_OFFLINE = True
COMPRESS_OFFLINE_CONTEXT = {u'STATIC_URL': '[https://uipa-prod-media.s3-us-west-1.amazonaws.com/static/](https://urldefense.com/v3/__https://uipa-prod-media.s3-us-west-1.amazonaws.com/static/__;!!PvDODwlR4mBZyAb0!Wue2czg32XxfDieDKL5HOvTYIO4s_EmFHvvb2nM4h68yzQ69hBW2slztdPMPoVBgOY5r3fS6fk3f8w$)'}
COMPRESS_OFFLINE_MANIFEST = u'manifest.json'
COMPRESS_OFFLINE_TIMEOUT = 31536000
COMPRESS_OUTPUT_DIR = u'CACHE'
COMPRESS_PARSER = 'compressor.parser.HtmlParser'
COMPRESS_PRECOMPILERS =
COMPRESS_REBUILD_TIMEOUT = 2592000
COMPRESS_ROOT = '/var/www/applications/uipa_org/app/releases/20171206105506Z/public'
COMPRESS_STORAGE = 'uipa_org.custom_storages.CachedS3BotoStorage'
COMPRESS_TEMPLATE_FILTER_CONTEXT = {u'STATIC_URL': '[https://uipa-prod-media.s3-us-west-1.amazonaws.com/static/](https://urldefense.com/v3/__https://uipa-prod-media.s3-us-west-1.amazonaws.com/static/__;!!PvDODwlR4mBZyAb0!Wue2czg32XxfDieDKL5HOvTYIO4s_EmFHvvb2nM4h68yzQ69hBW2slztdPMPoVBgOY5r3fS6fk3f8w$)'}
COMPRESS_URL = '[https://uipa-prod-media.s3-us-west-1.amazonaws.com/static/](https://urldefense.com/v3/__https://uipa-prod-media.s3-us-west-1.amazonaws.com/static/__;!!PvDODwlR4mBZyAb0!Wue2czg32XxfDieDKL5HOvTYIO4s_EmFHvvb2nM4h68yzQ69hBW2slztdPMPoVBgOY5r3fS6fk3f8w$)'
COMPRESS_VERBOSE = False
COMPRESS_YUGLIFY_BINARY = u'yuglify'
COMPRESS_YUGLIFY_CSS_ARGUMENTS = u'--terminal'
COMPRESS_YUGLIFY_JS_ARGUMENTS = u'--terminal'
COMPRESS_YUI_BINARY = u'java -jar yuicompressor.jar'
COMPRESS_YUI_CSS_ARGUMENTS = u''
COMPRESS_YUI_JS_ARGUMENTS = u''
CONFIGURATION = 'uipa_org.settings.Production'
CONN_MAX_AGE = None
CSRF_COOKIE_AGE = 31449600
CSRF_COOKIE_DOMAIN = None
CSRF_COOKIE_HTTPONLY = True
CSRF_COOKIE_NAME = u'csrftoken'
CSRF_COOKIE_PATH = u'/'
CSRF_COOKIE_SECURE = True
CSRF_FAILURE_VIEW = 'froide.account.views.csrf_failure'
CSRF_HEADER_NAME = u'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS = []
CUSTOM_AUTH_USER_MODEL_DB = ''
DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql_psycopg2', 'AUTOCOMMIT': True, 'ATOMIC_REQUESTS': False, 'NAME': 'prod_uipa', 'CONN_MAX_AGE': 0, 'TIME_ZONE': None, 'PORT': 5432, 'HOST': 'localhost', 'USER': 'uipa', 'TEST': {'COLLATION': None, 'CHARSET': None, 'NAME': None, 'MIRROR': None}, 'PASSWORD': u'********************', 'OPTIONS': {}}}
DATABASE_ROUTERS = []
DATA_UPLOAD_MAX_MEMORY_SIZE = 26214400
DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000
DATETIME_FORMAT = u'N j, Y, P'
DATETIME_INPUT_FORMATS = '%d.%m.%Y %H:%M'
DATE_FORMAT = 'd. F Y'
DATE_INPUT_FORMATS = '%d.%m.%Y'
DEBUG = False
DEBUG_PROPAGATE_EXCEPTIONS = False
DECIMAL_SEPARATOR = u'.'
DEFAULT_CHARSET = u'utf-8'
DEFAULT_CONTENT_TYPE = u'text/html'
DEFAULT_EXCEPTION_REPORTER_FILTER = u'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE = u'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL = '[info@foi.uipa.org](mailto:info@foi.uipa.org)'
DEFAULT_INDEX_TABLESPACE = u''
DEFAULT_TABLESPACE = u''
DISALLOWED_USER_AGENTS = []
DOTENV_LOADED = None
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = '[smtp.postmarkapp.com](http://smtp.postmarkapp.com/)'
EMAIL_HOST_PASSWORD = u'********************'
EMAIL_HOST_USER = '7556333d-26a2-4f93-8f4b-fe9ddc548f4f'
EMAIL_PORT = 2525
EMAIL_SSL_CERTFILE = None
EMAIL_SSL_KEYFILE = u'********************'
EMAIL_SUBJECT_PREFIX = '[Froide] '
EMAIL_TIMEOUT = None
EMAIL_USE_SSL = False
EMAIL_USE_TLS = True
FILE_CHARSET = u'utf-8'
FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
FILE_UPLOAD_HANDLERS = [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'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 = 'fixtures'
FOI_EMAIL_ACCOUNT_NAME = '[foi@example.com](mailto:foi@example.com)'
FOI_EMAIL_ACCOUNT_PASSWORD = u'********************'
FOI_EMAIL_DOMAIN = '[foi.uipa.org](http://foi.uipa.org/)'
FOI_EMAIL_FIXED_FROM_ADDRESS = False
FOI_EMAIL_HOST = '[smtp.postmarkapp.com](http://smtp.postmarkapp.com/)'
FOI_EMAIL_HOST_FROM = '[info@foi.uipa.org](mailto:info@foi.uipa.org)'
FOI_EMAIL_HOST_IMAP = '[imap.example.com](http://imap.example.com/)'
FOI_EMAIL_HOST_PASSWORD = u'********************'
FOI_EMAIL_HOST_USER = '7556333d-26a2-4f93-8f4b-fe9ddc548f4f'
FOI_EMAIL_PORT = 2525
FOI_EMAIL_PORT_IMAP = 993
FOI_EMAIL_TEMPLATE = 'request+{secret}@{domain}'
FOI_EMAIL_USE_SSL = True
FOI_EMAIL_USE_TLS = True
FOI_MEDIA_PATH = 'foi'
FORCE_SCRIPT_NAME = None
FORMAT_MODULE_PATH = None
FROIDE_CONFIG = {'api_activated': u'********************', 'search_engine_query': '[http://www.google.com/search?as_q=%(query)s&as_epq=&as_oq=&as_eq=&hl=en&lr=&cr=&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=%(domain)s&as_rights=&safe=images](https://urldefense.com/v3/__http://www.google.com/search?as_q=*(query)s&as_epq=&as_oq=&as_eq=&hl=en&lr=&cr=&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=*(domain)s&as_rights=&safe=images__;JSU!!PvDODwlR4mBZyAb0!Wue2czg32XxfDieDKL5HOvTYIO4s_EmFHvvb2nM4h68yzQ69hBW2slztdPMPoVBgOY5r3fTMaXRGfw$)', 'allow_pseudonym': False, 'payment_possible': True, 'currency': 'Dollars', 'publicbody_empty': False, 'create_new_publicbody': False, 'make_public_num_days_after_due_date': 365, 'default_law': 1, 'public_body_officials_public': True, 'dryrun': False, 'show_public_body_employee_name': False, 'request_throttle': None, 'closings': [<_sre.SRE_Pattern object at 0x7fc8457f1030>], 'dryrun_domain': '[beta.uipa.org](http://beta.uipa.org/)', 'request_public_after_due_days': 14, 'public_body_officials_email_public': False, 'greetings': [<_sre.SRE_Pattern object at 0x7fc845905620>], 'doc_conversion_call_func': None, 'ga_tracking_id': 'UA-87485554-1', 'public_body_boosts': {}, 'doc_conversion_binary': '/usr/bin/libreoffice', 'user_can_hide_web': True}
FROIDE_THEME = 'uipa_org.theme'
GEOIP_PATH = None
GZIP_CONTENT_TYPES =
HAYSTACK_CONNECTIONS = {'default': {'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine', 'URL': '[http://127.0.0.1:9200/](https://urldefense.com/v3/__http://127.0.0.1:9200/__;!!PvDODwlR4mBZyAb0!Wue2czg32XxfDieDKL5HOvTYIO4s_EmFHvvb2nM4h68yzQ69hBW2slztdPMPoVBgOY5r3fTmG7Q-UQ$)', 'INDEX_NAME': 'haystack'}}
HAYSTACK_SIGNAL_PROCESSOR = 'celery_haystack.signals.CelerySignalProcessor'
HOLIDAYS = [(1, 1), (12, 25), (12, 26)]
HOLIDAYS_FOR_EASTER =
HOLIDAYS_WEEKENDS = True
IGNORABLE_404_URLS = []
INSTALLED_APPS = ['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.admin', 'django_comments', 'django.contrib.flatpages', 'django.contrib.sitemaps', 'haystack', 'taggit', 'floppyforms', 'overextends', 'tastypie', 'storages', 'compressor', 'froide.foirequest', 'froide.foirequestfollower', 'froide.frontpage', 'froide.publicbody', 'froide.account', 'froide.redaction', 'froide.foisite', 'froide.helper', 'uipa_org.theme', 'celery_haystack', 'djcelery_email', 'django.contrib.redirects', 'uipa_org.uipa_constants', 'uipa_org.theme.templatetags.uipa_extras', 'tinymce', 'raven.contrib.django.raven_compat']
INTERNAL_IPS = '127.0.0.1'
LANGUAGES =
LANGUAGES_BIDI = [u'he', u'ar', u'fa', u'ur']
LANGUAGE_CODE = 'en'
LANGUAGE_COOKIE_AGE = None
LANGUAGE_COOKIE_DOMAIN = None
LANGUAGE_COOKIE_NAME = u'django_language'
LANGUAGE_COOKIE_PATH = u'/'
LOCALE_PATHS = '/var/www/applications/uipa_org/venvs/releases/20171206105506Z/src/froide/locale'
LOGGING = {'loggers': {'django.security': {'handlers': ['uipa_org_logfile', 'mail_admins'], 'propagate': False, 'level': 'ERROR'}, 'django': {'handlers': ['uipa_org_logfile', 'mail_admins'], 'level': 'ERROR'}, 'django.request': {'handlers': ['uipa_org_logfile', 'mail_admins'], 'propagate': False, 'level': 'ERROR'}, 'froide': {'handlers': ['uipa_org_logfile', 'mail_admins'], 'level': 'DEBUG'}, 'uipa_org': {'handlers': ['uipa_org_logfile', 'mail_admins'], 'level': 'DEBUG'}, 'django.db.backends': {'level': 'ERROR', 'propagate': False, 'handlers': ['uipa_org_logfile', 'mail_admins']}}, 'disable_existing_loggers': True, 'handlers': {'uipa_org_logfile': {'backupCount': 10, 'level': 'DEBUG', 'filename': '/var/log/uipa_org/uipa_org_app.log', 'formatter': 'verbose', 'class': 'logging.handlers.RotatingFileHandler', 'maxBytes': 5242880}, 'console': {'class': 'logging.StreamHandler', 'filters': ['require_debug_true'], 'level': 'DEBUG'}, 'mail_admins': {'class': 'django.utils.log.AdminEmailHandler', 'filters': ['require_debug_false'], 'level': 'ERROR'}}, 'formatters': {'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '[%(asctime)s] %(levelname)s [%(module)s %(process)d %(thread)d - %(name)s.%(funcName)s:%(lineno)d] %(message)s'}}, 'version': 1, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}, 'require_debug_true': {'()': 'django.utils.log.RequireDebugTrue'}}, 'root': {'level': 'DEBUG', 'handlers': ['uipa_org_logfile']}}
LOGGING_CONFIG = u'logging.config.dictConfig'
LOGIN_REDIRECT_URL = u'/accounts/profile/'
LOGIN_URL = u'/accounts/login/'
LOGOUT_REDIRECT_URL = None
MANAGERS =
MEDIA_ROOT = '/var/www/applications/uipa_org/shared/media/files'
MEDIA_URL = '/files/'
MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage'
MIDDLEWARE = None
MIDDLEWARE_CLASSES = [u'raven.contrib.django.middleware.SentryMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', 'django.contrib.redirects.middleware.RedirectFallbackMiddleware', 'froide.account.middleware.AcceptNewTermsMiddleware']
MIGRATION_MODULES = {}
MONTH_DAY_FORMAT = u'F j'
NUMBER_GROUPING = 0
PASSWORD_HASHERS = u'********************'
PASSWORD_RESET_TIMEOUT_DAYS = u'********************'
PREPEND_WWW = False
PROJECT_ROOT = '/var/www/applications/uipa_org/app/releases/20171206105506Z/uipa_org'
RAVEN_CONFIG = {'dsn': '[https://766640c7e66040f880997c0e0b0a9ec5:08c62607489f450b9e8872da93debe63@sentry.io/114986](https://urldefense.com/v3/__https://766640c7e66040f880997c0e0b0a9ec5:08c62607489f450b9e8872da93debe63@sentry.io/114986__;!!PvDODwlR4mBZyAb0!Wue2czg32XxfDieDKL5HOvTYIO4s_EmFHvvb2nM4h68yzQ69hBW2slztdPMPoVBgOY5r3fS6nSX3VQ$)'}
ROOT_URLCONF = 'froide.urls'
SECRET_KEY = u'********************'
SECRET_URLS = u'********************'
SECURE_BROWSER_XSS_FILTER = False
SECURE_CONTENT_TYPE_NOSNIFF = False
SECURE_HSTS_INCLUDE_SUBDOMAINS = False
SECURE_HSTS_SECONDS = 0
SECURE_PROXY_SSL_HEADER =
SECURE_REDIRECT_EXEMPT = []
SECURE_SSL_HOST = None
SECURE_SSL_REDIRECT = True
SERVER_EMAIL = '[info@foi.uipa.org](mailto:info@foi.uipa.org)'
SESSION_CACHE_ALIAS = u'default'
SESSION_COOKIE_AGE = 3628800
SESSION_COOKIE_DOMAIN = None
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_NAME = u'sessionid'
SESSION_COOKIE_PATH = u'/'
SESSION_COOKIE_SECURE = True
SESSION_ENGINE = u'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_FILE_PATH = None
SESSION_SAVE_EVERY_REQUEST = False
SESSION_SERIALIZER = u'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE = 'uipa_org.settings'
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
SHORT_DATE_FORMAT = 'd.m.Y'
SIGNING_BACKEND = u'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS = []
SITE_EMAIL = '[info@uipa.org](mailto:info@uipa.org)'
SITE_ID = 1
SITE_NAME = 'UIPA.org'
SITE_URL = '[https://uipa.org](https://urldefense.com/v3/__https://uipa.org__;!!PvDODwlR4mBZyAb0!Wue2czg32XxfDieDKL5HOvTYIO4s_EmFHvvb2nM4h68yzQ69hBW2slztdPMPoVBgOY5r3fRNa_VIPA$)'
STATICFILES_DIRS = '/var/www/applications/uipa_org/venvs/releases/20171206105506Z/src/froide/froide/static'
STATICFILES_FINDERS =
STATICFILES_LOCATION = 'static'
STATICFILES_STORAGE = 'uipa_org.custom_storages.CachedS3BotoStorage'
STATIC_ROOT = '/var/www/applications/uipa_org/app/releases/20171206105506Z/public'
STATIC_URL = '[https://uipa-prod-media.s3-us-west-1.amazonaws.com/static/](https://urldefense.com/v3/__https://uipa-prod-media.s3-us-west-1.amazonaws.com/static/__;!!PvDODwlR4mBZyAb0!Wue2czg32XxfDieDKL5HOvTYIO4s_EmFHvvb2nM4h68yzQ69hBW2slztdPMPoVBgOY5r3fS6fk3f8w$)'
TAGGING_AUTOCOMPLETE_MAX_TAGS = 100
TASTYPIE_DEFAULT_FORMATS = ['json']
TEMPLATES = [{'DIRS': ('/var/www/applications/uipa_org/venvs/releases/20171206105506Z/src/froide/froide/templates',), 'OPTIONS': {'debug': True, 'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'froide.helper.context_processors.froide', 'froide.helper.context_processors.site_settings'], 'builtins': ['overextends.templatetags.overextends_tags'], 'loaders': ['froide.helper.theme_utils.ThemeLoader', 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader']}, 'BACKEND': 'django.template.backends.django.DjangoTemplates'}]
TEMPLATE_DEBUG = False
TEST_NON_SERIALIZED_APPS = []
TEST_RUNNER = u'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR = u','
TIME_FORMAT = 'H:i'
TIME_INPUT_FORMATS = '%H:%M'
TIME_ZONE = 'Pacific/Honolulu'
TINYMCE_DEFAULT_CONFIG = {'cleanup_on_startup': False, 'theme': 'advanced', 'plugins': 'table,spellchecker,paste,searchreplace'}
USE_ETAGS = False
USE_I18N = True
USE_L10N = True
USE_THOUSAND_SEPARATOR = False
USE_TZ = True
USE_X_ACCEL_REDIRECT = True
USE_X_FORWARDED_HOST = False
USE_X_FORWARDED_PORT = False
WSGI_APPLICATION = None
X_ACCEL_REDIRECT_PREFIX = '/protected'
X_FRAME_OPTIONS = u'SAMEORIGIN'
YEAR_MONTH_FORMAT = u'F Y'

Expected behavior
User is able to download multiple attachments, even if they are named the same thing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant