diff --git a/backend/api/models/character.py b/backend/api/models/character.py
index 5970a66f..30c89020 100644
--- a/backend/api/models/character.py
+++ b/backend/api/models/character.py
@@ -32,4 +32,8 @@ def generate_token() -> str:
"""
Generate a token for a Character to use for verification
"""
- return 'savageaim-' + ''.join(choice(CHARACTERS) for _ in range(RANDOM_CHARS))
+ code = 'savageaim-' + ''.join(choice(CHARACTERS) for _ in range(RANDOM_CHARS))
+ while Character.objects.filter(token=code).exists():
+ code = 'savageaim-' + ''.join(choice(CHARACTERS) for _ in range(RANDOM_CHARS))
+
+ return code
diff --git a/backend/api/models/team.py b/backend/api/models/team.py
index f0994454..57306655 100644
--- a/backend/api/models/team.py
+++ b/backend/api/models/team.py
@@ -27,4 +27,8 @@ def generate_invite_code() -> str:
Generate a new invite code for a team
Can be used to regenerate the code later as needed
"""
- return ''.join(choice(CHARS) for _ in range(CODE_LEN))
+ code = ''.join(choice(CHARS) for _ in range(CODE_LEN))
+ while Team.objects.filter(invite_code=code).exists():
+ code = ''.join(choice(CHARS) for _ in range(CODE_LEN))
+
+ return code
diff --git a/backend/backend/settings_live.py b/backend/backend/settings_live.py
index bf03283f..0e5823dc 100644
--- a/backend/backend/settings_live.py
+++ b/backend/backend/settings_live.py
@@ -115,3 +115,18 @@
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TIMEZONE = 'Europe/Dublin'
CELERY_ANNOTATIONS = {'tasks.verify_character': {'rate_limit': '1/s'}}
+
+# Get django logs to stdout
+LOGGING = {
+ 'version': 1,
+ 'disable_existing_loggers': False,
+ 'handlers': {
+ 'console': {
+ 'class': 'logging.StreamHandler',
+ },
+ },
+ 'root': {
+ 'handlers': ['console'],
+ 'level': 'WARNING',
+ },
+}
diff --git a/backend/deployment/Dockerfile b/backend/deployment/Dockerfile
index b10c317c..e6f5fb3c 100644
--- a/backend/deployment/Dockerfile
+++ b/backend/deployment/Dockerfile
@@ -11,4 +11,4 @@ RUN pip3 install -r requirements.txt
# Set the gunicorn to run the wsgi file
EXPOSE 443
-ENTRYPOINT python3 manage.py migrate && gunicorn --bind=0.0.0.0:443 --access-logfile - --log-file - --log-level info backend.wsgi
+ENTRYPOINT python3 manage.py migrate && gunicorn --bind=0.0.0.0:443 --access-logfile - --log-file - --log-level info --capture-output --enable-stdio-inheritance backend.wsgi
diff --git a/frontend/.env b/frontend/.env
index 652bd555..83b72765 100644
--- a/frontend/.env
+++ b/frontend/.env
@@ -1 +1 @@
-VUE_APP_VERSION="0.1.0"
+VUE_APP_VERSION="0.1.1"
diff --git a/frontend/src/components/footer.vue b/frontend/src/components/footer.vue
index 7b6b38d7..6ca53976 100644
--- a/frontend/src/components/footer.vue
+++ b/frontend/src/components/footer.vue
@@ -1,7 +1,9 @@
diff --git a/frontend/src/components/modals/changelog.vue b/frontend/src/components/modals/changelog.vue
index 16ee69e8..01cd6b8c 100644
--- a/frontend/src/components/modals/changelog.vue
+++ b/frontend/src/components/modals/changelog.vue
@@ -13,18 +13,15 @@
Added a settings popup under the User dropdown. Currently the only setting is to change your theme for the coloured BIS List displays on the team page and in the colours popup. However we have laid the groundwork to add more customisation in the future! We have a wiki now! Removed a lot of the help text from the pages since it's all in the wiki now!
- Changed current gear display on BIS tables in the team page to use tooltips instead of the HTML title element.
- Page titles now update so your tab and history displays will have more detail to them! Any 404 errors will keep the URL used to generate them, instead of replacing it the /404. Moved the system to dedicated infrastructure! Prevented any issues forming from Teams or Characters generating duplicate tokens by preventing that from happening altogether. Added wiki and github links to the footer. Footer now also displays the current version. Footer links now use tooltips instead of titles.{{ version }}
-
-
In the Team View pages, Characters' BIS Lists are rendered with colour and text.
-The text in each box indicates the gear that is Best in Slot for that slot.
-The colour of the box indicates the item level of the gear the character currently has equipped.
-If you have one, you can hover your mouse over this box to get the name of the gear they currently have equipped.
-The colours' meanings are outlined below.
Please note that all references to a "Maximum Item Level" (Max IL) refer to the Item Level of the Weapon obtained from the Tier's final raid.
For example, the Max IL for Pandæmonium: Asphodelos is 605.
Below the line is a drop down with all the different types of drops you can typically get from raids.
-By selecting one, you will see two boxes below.
-The box on the left contains Need data, or the Characters in the static that need that item for the role they play in the static.
-The box on the right contains Greed data, which are where Characters in the static need the item for BIS Lists for other jobs.
-The Raid Lead will have buttons to click that allows for recording loot obtained. This will also mark off the appropriate item and list for whoever is recorded as getting the loot.
-At the bottom of the page is the Loot History for this team for the current Tier. Click or tap on the history box below to view it.
-Please note that looted rings will replace whichever slot has the Raid ring on BIS, so be careful with your list setup.
-Below are the people that need the chosen item for their Team BIS.
Clicking the button beside anyone will add a Loot entry, and update their BIS List accordingly.
- -Below are the people that need the chosen item for any other BIS they have, grouped by character.
Clicking the button beside anyone will add a Loot entry, and update their BIS List accordingly.
-