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/legend.vue b/frontend/src/components/modals/legend.vue index b92358fb..3ff3225f 100644 --- a/frontend/src/components/modals/legend.vue +++ b/frontend/src/components/modals/legend.vue @@ -11,11 +11,6 @@
-

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.


diff --git a/frontend/src/views/team/loot.vue b/frontend/src/views/team/loot.vue index 2aa3fd58..4e8ab502 100644 --- a/frontend/src/views/team/loot.vue +++ b/frontend/src/views/team/loot.vue @@ -28,41 +28,31 @@
- How This Works + What Item Dropped
-

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.

-
-
-
+ -
- - - -
- Greed: {{ bisLootErrors.greed[0] }} -
-
- Greed BIS ID: {{ bisLootErrors.greed_bis_id[0] }} -
-
- Item: {{ bisLootErrors.item[0] }} -
-
- Member ID: {{ bisLootErrors.member_id[0] }} + +
+ Greed: {{ bisLootErrors.greed[0] }} +
+
+ Greed BIS ID: {{ bisLootErrors.greed_bis_id[0] }} +
+
+ Item: {{ bisLootErrors.item[0] }} +
+
+ Member ID: {{ bisLootErrors.member_id[0] }} +
+
-
+
@@ -72,37 +62,38 @@

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.

- -