Closed VarunS1997 closed 1 month ago
There are multiple references to a function named removeGameFromStore
and is part of UI that a user can use to remove a game. The import for said function references a file (src/store/slices/gameSlices
) that does not exist in the current version of the project. In fact, the directory store
does not exist
This might be related to the sync issue we discussed over Discord. Let's continue pulling this thread and see what we can do.
Confirmed. This missing files problem was a sync issue and has been resolved with a re-sync
Looks like users may be able to leave games from both src/components/games/GameScreen.js and src/components/games/settings/GameSettingsScreen.js. The two locations have slightly different approaches to the API call to leave the game. We can investigate if both are not working, or only one.
If both are not working, the API call is most likely set up incorrectly. If only one is not working, we can fix it to match the one that is working. Will pick this back up with local development.
(RESOLVED by installing redis)
Trying to join a game (not-a-real-game
) in the attempt to then leave it, is failing.
Here is the error response:
ConnectionRefusedError at /api/v2/games/42721/characters
[Errno 111] Connect call failed ('127.0.0.1', 6379)
Request Method: POST
Request URL: http://localhost:8000/api/v2/games/42721/characters
Django Version: 3.1
Python Executable: /media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/bin/python
Python Version: 3.6.4
Python Path: ['/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend', '/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/lib/python3.6/site-packages']
Server time: Thu, 25 Jul 2024 16:42:09 +0000
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'rest_framework.authtoken',
'django_mysql',
'channels',
'haystack',
'rolegate',
'playerdata',
'silk']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'rolegate.middleware.dev_cors_middleware']
Traceback (most recent call last):
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/lib/python3.6/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/lib/python3.6/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/lib/python3.6/site-packages/rest_framework/viewsets.py", line 114, in view
return self.dispatch(request, *args, **kwargs)
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/lib/python3.6/site-packages/rest_framework/views.py", line 505, in dispatch
response = self.handle_exception(exc)
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/lib/python3.6/site-packages/rest_framework/views.py", line 465, in handle_exception
self.raise_uncaught_exception(exc)
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/lib/python3.6/site-packages/rest_framework/views.py", line 476, in raise_uncaught_exception
raise exc
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/lib/python3.6/site-packages/rest_framework/views.py", line 502, in dispatch
response = handler(request, *args, **kwargs)
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/api/views/character_views.py", line 115, in create
character.save()
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/playerdata/api/characters.py", line 71, in save
send_to_channel(f"game_{self.game_id}", "characters_changed")
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/playerdata/utils.py", line 95, in send_to_channel
message
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/lib/python3.6/site-packages/asgiref/sync.py", line 139, in __call__
return call_result.result()
File "/usr/local/lib/python3.6/concurrent/futures/_base.py", line 425, in result
return self.__get_result()
File "/usr/local/lib/python3.6/concurrent/futures/_base.py", line 384, in __get_result
raise self._exception
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/lib/python3.6/site-packages/asgiref/sync.py", line 204, in main_wrap
result = await self.awaitable(*args, **kwargs)
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/lib/python3.6/site-packages/channels_redis/core.py", line 614, in group_send
async with self.connection(self.consistent_hash(group)) as connection:
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/lib/python3.6/site-packages/channels_redis/core.py", line 835, in __aenter__
self.conn = await self.pool.pop()
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/lib/python3.6/site-packages/channels_redis/core.py", line 73, in pop
conns.append(await aioredis.create_redis(**self.host, loop=loop))
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/lib/python3.6/site-packages/aioredis/commands/__init__.py", line 175, in create_redis
loop=loop)
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/lib/python3.6/site-packages/aioredis/connection.py", line 113, in create_connection
timeout)
File "/usr/local/lib/python3.6/asyncio/tasks.py", line 339, in wait_for
return (yield from fut)
File "/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/venv/lib/python3.6/site-packages/aioredis/stream.py", line 24, in open_connection
lambda: protocol, host, port, **kwds)
File "/usr/local/lib/python3.6/asyncio/base_events.py", line 777, in create_connection
raise exceptions[0]
File "/usr/local/lib/python3.6/asyncio/base_events.py", line 764, in create_connection
yield from self.sock_connect(sock, address)
File "/usr/local/lib/python3.6/asyncio/selector_events.py", line 450, in sock_connect
return (yield from fut)
File "/usr/local/lib/python3.6/asyncio/selector_events.py", line 480, in _sock_connect_cb
raise OSError(err, 'Connect call failed %s' % (address,))
Exception Type: ConnectionRefusedError at /api/v2/games/42721/characters
Exception Value: [Errno 111] Connect call failed ('127.0.0.1', 6379)
Request information:
USER: verge729
GET: No GET data
POST: No POST data
FILES: No FILES data
COOKIES: No cookie data
META:
CONTENT_LENGTH = '156'
CONTENT_TYPE = 'application/json'
HTTP_ACCEPT = 'application/json'
HTTP_ACCEPT_ENCODING = 'gzip, deflate, br, zstd'
HTTP_ACCEPT_LANGUAGE = 'en-US,en;q=0.9'
HTTP_AUTHORIZATION = 'Token 898309ca01d61b35f1eb03b106ac53f603f1059a'
HTTP_CONNECTION = 'keep-alive'
HTTP_HOST = 'localhost:8000'
HTTP_ORIGIN = 'http://localhost:19006'
HTTP_REFERER = 'http://localhost:19006/'
HTTP_SEC_CH_UA = '"Not/A)Brand";v="8", "Chromium";v="126", "Brave";v="126"'
HTTP_SEC_CH_UA_MOBILE = '?0'
HTTP_SEC_CH_UA_PLATFORM = '"Linux"'
HTTP_SEC_FETCH_DEST = 'empty'
HTTP_SEC_FETCH_MODE = 'cors'
HTTP_SEC_FETCH_SITE = 'same-site'
HTTP_SEC_GPC = '1'
HTTP_USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'
PATH_INFO = '/api/v2/games/42721/characters'
QUERY_STRING = ''
REMOTE_ADDR = '127.0.0.1'
REMOTE_HOST = '127.0.0.1'
REMOTE_PORT = 49002
REQUEST_METHOD = 'POST'
SCRIPT_NAME = ''
SERVER_NAME = '127.0.0.1'
SERVER_PORT = '8000'
wsgi.multiprocess = True
wsgi.multithread = True
Settings:
Using settings module rolegate.settings
ABSOLUTE_URL_OVERRIDES = {}
ADMINS = [('Varun', 'varun@tabletopmirror.com')]
ALLOWED_HOSTS = ['*']
APPEND_SLASH = True
ASGI_APPLICATION = 'rolegate.routing.application'
AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend']
AUTH_PASSWORD_VALIDATORS = '********************'
AUTH_USER_MODEL = 'auth.User'
BASE_DIR = '/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend'
CACHES = {'default': {'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://127.0.0.1:6379/', 'TIMEOUT': 300, 'OPTIONS': {'CLIENT_CLASS': 'django_redis.client.DefaultClient'}}}
CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
CACHE_MIDDLEWARE_SECONDS = 600
CHANNEL_LAYERS = {'default': {'BACKEND': 'channels_redis.core.RedisChannelLayer', 'CONFIG': {'hosts': [('127.0.0.1', 6379)], 'capacity': 1500, 'expiry': 10}}}
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': {'ENGINE': 'django.db.backends.mysql', 'NAME': 'rolegate_main', 'USER': 'rolegate', 'PASSWORD': '********************', 'HOST': 'ls-9d296ff81773fd6cb1cdd1cae824fe0aa4555a9d.cio169y6tr8j.us-east-1.rds.amazonaws.com', 'PORT': '3306', 'CONN_MAX_AGE': 120, 'OPTIONS': {'charset': 'utf8mb4'}, 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'TIME_ZONE': None, 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}}}
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', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M']
DATE_FORMAT = 'N j, Y'
DATE_INPUT_FORMATS = ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']
DEBUG = True
DEBUG_PROPAGATE_EXCEPTIONS = False
DECIMAL_SEPARATOR = '.'
DEFAULT_CHARSET = 'utf-8'
DEFAULT_EXCEPTION_REPORTER = 'django.views.debug.ExceptionReporter'
DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL = 'webmaster@localhost'
DEFAULT_HASHING_ALGORITHM = 'sha256'
DEFAULT_INDEX_TABLESPACE = ''
DEFAULT_TABLESPACE = ''
DEVELOPMENT = True
DISALLOWED_USER_AGENTS = []
DJANGO_LOG_LEVEL = 'DEBUG'
DJANGO_MYSQL_REWRITE_QUERIES = True
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_HOST_PASSWORD = '********************'
EMAIL_HOST_USER = ''
EMAIL_PORT = 25
EMAIL_SSL_CERTFILE = None
EMAIL_SSL_KEYFILE = '********************'
EMAIL_SUBJECT_PREFIX = '[Django] '
EMAIL_TIMEOUT = None
EMAIL_USE_LOCALTIME = False
EMAIL_USE_SSL = False
EMAIL_USE_TLS = False
EXPO_PUSH_URL = 'https://exp.host/--/api/v2/push/send'
EXPO_RECEIPT_URL = 'https://exp.host/--/api/v2/push/getReceipts'
FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
FILE_UPLOAD_PERMISSIONS = 420
FILE_UPLOAD_TEMP_DIR = None
FIRST_DAY_OF_WEEK = 0
FIXTURE_DIRS = []
FORCE_SCRIPT_NAME = None
FORMAT_MODULE_PATH = None
FORM_RENDERER = 'django.forms.renderers.DjangoTemplates'
HAYSTACK_CONNECTIONS = {'default': {'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', 'PATH': '/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/whoosh_index'}}
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
IGNORABLE_404_URLS = []
INSTALLED_APPS = ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'rest_framework.authtoken', 'django_mysql', 'channels', 'haystack', 'rolegate', 'playerdata', 'silk']
INTERNAL_IPS = ['127.0.0.1']
LANGUAGES = "(('en', 'English'), ('fr', 'French'), ('pl', 'Polish'), ('it', 'Italian'), ('es', 'Spanish'), ('el', 'Greek'), ('hr', 'Croatian'), ('bg', 'Bulgarian'), ('pt-br', 'Portuguese'), ('de', 'German'), ('nl', 'Dutch'), ('ro', 'Romanian'), ('ru', 'Russian'))"
LANGUAGES_BIDI = ['he', 'ar', 'ar-dz', 'fa', 'ur']
LANGUAGE_CODE = 'en-us'
LANGUAGE_COOKIE_AGE = None
LANGUAGE_COOKIE_DOMAIN = None
LANGUAGE_COOKIE_HTTPONLY = False
LANGUAGE_COOKIE_NAME = 'django_language'
LANGUAGE_COOKIE_PATH = '/'
LANGUAGE_COOKIE_SAMESITE = None
LANGUAGE_COOKIE_SECURE = False
LOCALE_PATHS = ['/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/locale']
LOGGING = {'version': 1, 'disable_existing_loggers': True, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}, 'require_debug_true': {'()': 'django.utils.log.RequireDebugTrue'}}, 'formatters': {'console': {'format': '[%(levelname)-8s] %(name)-12s[%(process)d] - %(message)s'}, 'file': {'format': '%(asctime)s [%(levelname)-8s] %(name)-12s[%(process)d] - %(message)s', 'datefmt': '%m/%d/%Y %I:%M:%S %p'}}, 'handlers': {'console': {'level': 'DEBUG', 'filters': ['require_debug_true'], 'class': 'logging.StreamHandler', 'formatter': 'console'}, 'file': {'class': 'logging.handlers.TimedRotatingFileHandler', 'formatter': 'file', 'filename': '/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/log/rolegate.log', 'interval': 1, 'backupCount': 5, 'encoding': 'utf8', 'when': 'midnight', 'utc': True}, 'mail_admins': {'level': 'ERROR', 'class': 'rolegate.admin_email_handler.ThrottledAdminEmailHandler'}}, 'loggers': {'django.request': {'level': 'DEBUG', 'handlers': ['console'], 'propagate': True}, 'django.template': {'level': 'DEBUG', 'handlers': ['console'], 'propagate': True}, 'django.db.backends': {'level': 'DEBUG', 'handlers': ['console'], 'propagate': False}}}
LOGGING_CONFIG = 'logging.config.dictConfig'
LOGIN_REDIRECT_URL = '/accounts/profile/'
LOGIN_URL = '/accounts/login/'
LOGOUT_REDIRECT_URL = '/'
MANAGERS = []
MEDIA_ROOT = '/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend'
MEDIA_URL = '/'
MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
MIDDLEWARE = ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'rolegate.middleware.dev_cors_middleware']
MIGRATION_MODULES = {}
MONTH_DAY_FORMAT = 'F j'
NUMBER_GROUPING = 0
PASSWORD_HASHERS = '********************'
PASSWORD_RESET_TIMEOUT = '********************'
PASSWORD_RESET_TIMEOUT_DAYS = '********************'
PREPEND_WWW = False
REST_FRAMEWORK = {'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.TokenAuthentication',), 'DEFAULT_RENDERER_CLASSES': ('rest_framework.renderers.JSONRenderer',), 'DEFAULT_PARSER_CLASSES': ('rest_framework.parsers.JSONParser',), 'EXCEPTION_HANDLER': 'api.exceptions.exception_handler.rolegate_api_exception_handler', 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend', 'rest_framework.filters.SearchFilter', 'rest_framework.filters.OrderingFilter'), 'DEFAULT_PAGINATION_CLASS': 'api.paginations.DefaultPagination', 'PAGE_SIZE': 10, 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticatedOrReadOnly',)}
ROOT_URLCONF = 'rolegate.urls'
SECRET_KEY = '********************'
SECURE_BROWSER_XSS_FILTER = False
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_HSTS_INCLUDE_SUBDOMAINS = False
SECURE_HSTS_PRELOAD = False
SECURE_HSTS_SECONDS = 0
SECURE_PROXY_SSL_HEADER = None
SECURE_REDIRECT_EXEMPT = []
SECURE_REFERRER_POLICY = 'same-origin'
SECURE_SSL_HOST = None
SECURE_SSL_REDIRECT = False
SERVER_EMAIL = 'root@localhost'
SESSION_CACHE_ALIAS = 'default'
SESSION_COOKIE_AGE = 1209600
SESSION_COOKIE_DOMAIN = None
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_NAME = 'sessionid'
SESSION_COOKIE_PATH = '/'
SESSION_COOKIE_SAMESITE = '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.JSONSerializer'
SETTINGS_MODULE = 'rolegate.settings'
SHORT_DATETIME_FORMAT = 'm/d/Y P'
SHORT_DATE_FORMAT = 'm/d/Y'
SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS = []
SILKY_INTERCEPT_PERCENT = 100
STATICFILES_DIRS = ['/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/static']
STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT = '/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/static/collect'
STATIC_URL = '/static/'
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/templates', '/media/verge729/XetiCodeLLC/development/projects_external/rolegate/Role-Gate-Backend/web-build'], 'APP_DIRS': True, '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']}}]
TEST_NON_SERIALIZED_APPS = []
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'
USE_I18N = True
USE_L10N = True
USE_THOUSAND_SEPARATOR = False
USE_TZ = True
USE_X_FORWARDED_HOST = False
USE_X_FORWARDED_PORT = False
WSGI_APPLICATION = 'rolegate.wsgi.application'
X_FRAME_OPTIONS = 'DENY'
YEAR_MONTH_FORMAT = 'F Y'
You're seeing this error because you have DEBUG = True in your
Django settings file. Change that to False, and Django will
display a standard page generated by the handler for this status code.
Game Settings leave game button works.
Leave Game button on Game Screen (accessible via the three vertical dots in the top right corner) does not work (src/components/games/GameScreen.js
).
This issue appears to be along the lines of a cache or query problem. When the leave game button is clicked, the user is indeed removed from the game. HOWEVER, upon navigation to the MyGames page, the page loads 3 separate times and one of those times queries game data from somewhere. Refreshing the page will clear this game data
Confirmed that there seems to be a race condition of some sort. Navigating to the My Games page after leaving the game will trigger a query that will return the left game. Refreshing the page seems to trigger the same query after the game data is cleared from the DB.
At this time, I am not sure what is required to prevent this query from returning the data. A work around may be sufficient at this time via providing some kind of flag in the navigation from the leave game to my games
I changed the navigation upon leaving the game from My Games as the destination to Game Settings as the destination.
Upon navigation to the page, the settings page is as if the player is still a part of the game. After a second or two, the page refreshes and displays the page as if the player is not part of the game
Role Gate Bug -
Two attachments left out.