From 89cfa5b2f50fb91e39700a0c5d5235538607637d Mon Sep 17 00:00:00 2001 From: DonnieBLT <128622481+DonnieBLT@users.noreply.github.com> Date: Wed, 20 Nov 2024 11:56:04 -0500 Subject: [PATCH 01/10] feat: update account deletion form action and add confirmation prompt --- website/templates/profile_edit.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/templates/profile_edit.html b/website/templates/profile_edit.html index 5e7d52507..74cf1e853 100644 --- a/website/templates/profile_edit.html +++ b/website/templates/profile_edit.html @@ -225,7 +225,7 @@

Edit Profile

Danger Zone

-
{% csrf_token %} From b8b7e614d3da1d07e24ec2a170c5b994277473a4 Mon Sep 17 00:00:00 2001 From: DonnieBLT <128622481+DonnieBLT@users.noreply.github.com> Date: Thu, 21 Nov 2024 13:00:51 -0500 Subject: [PATCH 02/10] feat: update redirect after account deletion and ensure user profile creation --- website/views/user.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/website/views/user.py b/website/views/user.py index 52238678b..2d4c262ee 100644 --- a/website/views/user.py +++ b/website/views/user.py @@ -158,7 +158,7 @@ def post(self, request, *args, **kwargs): logout(request) user.delete() messages.success(request, "Account successfully deleted") - return redirect(reverse("index")) + return redirect(reverse("home")) return render(request, "user_deletion.html", {"form": form}) @@ -202,6 +202,10 @@ def get(self, request, *args, **kwargs): return super(UserProfileDetailView, self).get(request, *args, **kwargs) def get_context_data(self, **kwargs): + # if userprofile does not exist, create it + if not UserProfile.objects.filter(user=self.object).exists(): + UserProfile.objects.create(user=self.object) + user = self.object context = super(UserProfileDetailView, self).get_context_data(**kwargs) context["my_score"] = list( From 016b45a1a55a7353627bec2a8c564e756fcc3f95 Mon Sep 17 00:00:00 2001 From: DonnieBLT <128622481+DonnieBLT@users.noreply.github.com> Date: Thu, 21 Nov 2024 13:05:03 -0500 Subject: [PATCH 03/10] refactor: optimize token validation in delete_issue function --- website/views/issue.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/website/views/issue.py b/website/views/issue.py index bf983d670..82a6ee577 100644 --- a/website/views/issue.py +++ b/website/views/issue.py @@ -348,9 +348,11 @@ def newhome(request, template="new_home.html"): def delete_issue(request, id): try: - token = Token.objects.get(key=request.POST["token"]) - request.user = User.objects.get(id=token.user_id) - tokenauth = True + # TODO: Refactor this for a direct query instead of looping through all tokens + for token in Token.objects.all(): + if request.POST["token"] == token.key: + request.user = User.objects.get(id=token.user_id) + tokenauth = True except Token.DoesNotExist: tokenauth = False From 178aa558ea0baadcf1e982fccee99fcada806dd1 Mon Sep 17 00:00:00 2001 From: Krishna Kaushal <104532938+tsu-ki@users.noreply.github.com> Date: Thu, 21 Nov 2024 23:39:48 +0530 Subject: [PATCH 04/10] Fixed the signin/logout toast popup (#2949) * Fixed the signin/logout toast * Fixed signup/logout Toast position * fixed signup/logout toast --- website/templates/base.html | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/website/templates/base.html b/website/templates/base.html index 860ff2344..1ffb38bda 100644 --- a/website/templates/base.html +++ b/website/templates/base.html @@ -152,8 +152,22 @@ {% for message in messages %} $.notify("{{ message }}", { style: "custom", - className: "{{message.level_tag }}" - }); + className: "{{message.level_tag }}", + autoHide: true, + autoHideDelay: 2000, + clicktoHide: true, + position: "left bottom", + gap: 5, + elementSize: { + width: "auto", + height: "auto" + } + }); + setTimeout(function() { + $('.notifyjs-wrapper').on('mouseenter', function() { + $(this).fadeOut(); + }); + }, 100); {% endfor %} {% endif %} }); From 9eb69170f53a67c3f6d6e325aa31a8526ad4a48e Mon Sep 17 00:00:00 2001 From: Kapil Sareen Date: Fri, 22 Nov 2024 00:16:49 +0530 Subject: [PATCH 05/10] Fix Docker Setup and containerize database for easier local development (#2926) * fixes docker-setup Signed-off-by: KapilSareen * resolves conversation * Update .env.example --------- Signed-off-by: KapilSareen Co-authored-by: DonnieBLT <128622481+DonnieBLT@users.noreply.github.com> --- .env.example | 7 +++++-- Dockerfile | 11 +++++----- docker-compose.yml | 51 ++++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 58 insertions(+), 11 deletions(-) diff --git a/.env.example b/.env.example index 994ea9a16..5e2421c0f 100644 --- a/.env.example +++ b/.env.example @@ -17,8 +17,11 @@ LANGCHAIN_TRACING_V2=true LANGCHAIN_PROJECT=default LANGCHAIN_ENDPOINT="https://api.smith.langchain.com" +#DATABASE creds +DB_USER=user +DB_PASS=password +DB_NAME=blt-test #Database URL -DATABASE_URL=postgres://user:password@localhost:5432/dbname - +DATABASE_URL=postgres://user:password@localhost:5432/blt-test #Sentry DSN SENTRY_DSN=https://examplePublicKey@o0.ingest.sentry.io/0 diff --git a/Dockerfile b/Dockerfile index fcaaacda1..50ff6ecc5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,13 +18,14 @@ RUN apt-get update && apt-get install -y \ libmemcached-dev \ libz-dev - RUN pip install poetry RUN poetry config virtualenvs.create false +RUN poetry lock RUN poetry install +RUN pip install opentelemetry-api opentelemetry-instrumentation -RUN python manage.py migrate -RUN python manage.py loaddata website/fixtures/initial_data.json -# RUN python manage.py collectstatic -RUN python manage.py initsuperuser +RUN python manage.py collectstatic --noinput +CMD python manage.py migrate && \ + python manage.py create_superuser && \ + python manage.py loaddata website/fixtures/initial_data.json diff --git a/docker-compose.yml b/docker-compose.yml index 96b049d42..aaea5e052 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,10 +1,53 @@ -version: "3" - +version: "3.8" services: + db: + image: postgres + container_name: postgres-db + restart: always + healthcheck: + test: ["CMD", "pg_isready", "-U", "user" , "-d" , "blt-test"] + interval: 10s + timeout: 5s + retries: 5 + + environment: + - POSTGRES_PASSWORD=${DB_PASS} + - POSTGRES_USER=${DB_USER} + - POSTGRES_DB=${DB_NAME} + ports: + - "5432:5432" + volumes: + - postgres_db:/var/lib/postgresql/data + networks: + app: + ipv4_address: 192.168.92.10 + app: - command: "poetry run python manage.py runserver 0.0.0.0:8000" build: . + container_name: app + restart: on-failure + env_file: + - .env + command: poetry run python manage.py runserver 0.0.0.0:8080 + depends_on: + db: + condition: service_healthy + networks: + app: + ipv4_address: 192.168.92.22 volumes: - .:/blt ports: - - "8000:8000" + - "8080:8080" + environment: + DB_HOST: 192.168.92.10 + +volumes: + postgres_db: + +networks: + app: + driver: bridge + ipam: + config: + - subnet: "192.168.92.0/24" \ No newline at end of file From 1187e0b479a9ac65e6357f5e3cbedd0e46eada1c Mon Sep 17 00:00:00 2001 From: Prexy <97254881+Prakhar-Shankar@users.noreply.github.com> Date: Fri, 22 Nov 2024 02:38:59 +0530 Subject: [PATCH 06/10] Added a button- Report a Bug in the issues page. (#2933) * Added a button- Report a Bug in the issues page. * Changed the location of the button * Changed the location of the button * pre-commit format added * Revert "pre-commit format added" This reverts commit c601bfc19ad1b2b68a39f55863201ced2cc1da6d. * pre-commit format added * pre-commit format added and updated branch --------- Co-authored-by: DonnieBLT <128622481+DonnieBLT@users.noreply.github.com> --- website/templates/new_home.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/website/templates/new_home.html b/website/templates/new_home.html index 0dbbd39ac..dfd32fe25 100644 --- a/website/templates/new_home.html +++ b/website/templates/new_home.html @@ -12,7 +12,13 @@ right: 15px; } -
+ +
{% for bug in bugs %} From 2617613d7950fa216d1f3f66a37cb1b65c0b5bea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 00:08:47 +0000 Subject: [PATCH 07/10] chore(deps): Bump sentry-sdk from 2.18.0 to 2.19.0 Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 2.18.0 to 2.19.0. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-python/compare/2.18.0...2.19.0) --- updated-dependencies: - dependency-name: sentry-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- poetry.lock | 14 +++++++------- pyproject.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/poetry.lock b/poetry.lock index 4e2db1357..f3aa983e0 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. [[package]] name = "aiohappyeyeballs" @@ -4179,13 +4179,13 @@ starkbank-ecdsa = ">=2.0.1" [[package]] name = "sentry-sdk" -version = "2.18.0" +version = "2.19.0" description = "Python client for Sentry (https://sentry.io)" optional = false python-versions = ">=3.6" files = [ - {file = "sentry_sdk-2.18.0-py2.py3-none-any.whl", hash = "sha256:ee70e27d1bbe4cd52a38e1bd28a5fadb9b17bc29d91b5f2b97ae29c0a7610442"}, - {file = "sentry_sdk-2.18.0.tar.gz", hash = "sha256:0dc21febd1ab35c648391c664df96f5f79fb0d92d7d4225cd9832e53a617cafd"}, + {file = "sentry_sdk-2.19.0-py2.py3-none-any.whl", hash = "sha256:7b0b3b709dee051337244a09a30dbf6e95afe0d34a1f8b430d45e0982a7c125b"}, + {file = "sentry_sdk-2.19.0.tar.gz", hash = "sha256:ee4a4d2ae8bfe3cac012dcf3e4607975904c137e1738116549fc3dbbb6ff0e36"}, ] [package.dependencies] @@ -4211,7 +4211,7 @@ grpcio = ["grpcio (>=1.21.1)", "protobuf (>=3.8.0)"] http2 = ["httpcore[http2] (==1.*)"] httpx = ["httpx (>=0.16.0)"] huey = ["huey (>=2)"] -huggingface-hub = ["huggingface-hub (>=0.22)"] +huggingface-hub = ["huggingface_hub (>=0.22)"] langchain = ["langchain (>=0.0.210)"] launchdarkly = ["launchdarkly-server-sdk (>=9.8.0)"] litestar = ["litestar (>=2.0.0)"] @@ -4220,7 +4220,7 @@ openai = ["openai (>=1.0.0)", "tiktoken (>=0.3.0)"] openfeature = ["openfeature-sdk (>=0.7.1)"] opentelemetry = ["opentelemetry-distro (>=0.35b0)"] opentelemetry-experimental = ["opentelemetry-distro"] -pure-eval = ["asttokens", "executing", "pure-eval"] +pure-eval = ["asttokens", "executing", "pure_eval"] pymongo = ["pymongo (>=3.1)"] pyspark = ["pyspark (>=2.4.4)"] quart = ["blinker (>=1.1)", "quart (>=0.16.1)"] @@ -5043,4 +5043,4 @@ propcache = ">=0.2.0" [metadata] lock-version = "2.0" python-versions = "3.11.2" -content-hash = "3bcec92f552571d2e912ee4b5fdfbdbe1b366a3cd95623453bb403bc3d381333" +content-hash = "81ee34046bdaa5a2f50abf581c81f4f0e2f6b8835bf0e12df849223d3a66ed03" diff --git a/pyproject.toml b/pyproject.toml index ff2f74a83..4ae6fd217 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -63,7 +63,7 @@ django-filter = "^24.3" webdriver-manager = "^4.0.2" pillow = "^10.4.0" chromedriver-autoinstaller = "^0.6.4" -sentry-sdk = "^2.18.0" +sentry-sdk = "^2.19.0" bitcash = "^1.0.2" pydantic = "^2.7.3" pydantic_core = "^2.18.4" From 4c3ed1c834496f3ae3bc4edb9598bc829fcab5cf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 00:16:09 +0000 Subject: [PATCH 08/10] chore(deps): Bump django-import-export from 4.3.0 to 4.3.1 Bumps [django-import-export](https://github.com/django-import-export/django-import-export) from 4.3.0 to 4.3.1. - [Release notes](https://github.com/django-import-export/django-import-export/releases) - [Changelog](https://github.com/django-import-export/django-import-export/blob/main/docs/changelog.rst) - [Commits](https://github.com/django-import-export/django-import-export/compare/4.3.0...4.3.1) --- updated-dependencies: - dependency-name: django-import-export dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index f3aa983e0..a82e965e0 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1071,13 +1071,13 @@ humanize = ">=0.5.1" [[package]] name = "django-import-export" -version = "4.3.0" +version = "4.3.1" description = "Django application and library for importing and exporting data with included admin integration." optional = false python-versions = ">=3.9" files = [ - {file = "django_import_export-4.3.0-py3-none-any.whl", hash = "sha256:0bbb45732000ff5966ffad5c5d6f226e72c33065767b7720f8de8498444b95a7"}, - {file = "django_import_export-4.3.0.tar.gz", hash = "sha256:f92ec79cac9d34aa4aac30670f17c4de15d1f3534b87a0e84b348dd704a9fd9c"}, + {file = "django_import_export-4.3.1-py3-none-any.whl", hash = "sha256:7cd9165851872c8b0eb6ce71029f1e92411b757c2a2e69e7a7ea12e6274c173a"}, + {file = "django_import_export-4.3.1.tar.gz", hash = "sha256:9e47bc3bf632d930870dab221c5ef0bb02c5d5efd3720c4607c08f3f946a1caa"}, ] [package.dependencies] @@ -5043,4 +5043,4 @@ propcache = ">=0.2.0" [metadata] lock-version = "2.0" python-versions = "3.11.2" -content-hash = "81ee34046bdaa5a2f50abf581c81f4f0e2f6b8835bf0e12df849223d3a66ed03" +content-hash = "a0768654d13a81b03dd415ed591233b844f486e649a31dfc445cd2f58ab9a19c" diff --git a/pyproject.toml b/pyproject.toml index 4ae6fd217..17ef91917 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,7 +17,7 @@ beautifulsoup4 = "^4.12.3" colorthief = "^0.2.1" django-email-obfuscator = "^0.1.5" django-gravatar2 = "^1.4.5" -django-import-export = "^4.1.0" +django-import-export = "^4.3.1" django-annoying = "^0.10.7" dj-rest-auth = "^5.0.2" tweepy = "^4.8.0" From 6522b36d41be841da224606d8550469cd0caead4 Mon Sep 17 00:00:00 2001 From: DonnieBLT <128622481+DonnieBLT@users.noreply.github.com> Date: Thu, 21 Nov 2024 19:27:16 -0500 Subject: [PATCH 09/10] =?UTF-8?q?Revert=20"Fix=20Docker=20Setup=20and=20co?= =?UTF-8?q?ntainerize=20database=20for=20easier=20local=20developme?= =?UTF-8?q?=E2=80=A6"=20(#2964)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 9eb69170f53a67c3f6d6e325aa31a8526ad4a48e. --- .env.example | 7 ++----- Dockerfile | 11 +++++----- docker-compose.yml | 51 ++++------------------------------------------ 3 files changed, 11 insertions(+), 58 deletions(-) diff --git a/.env.example b/.env.example index 5e2421c0f..994ea9a16 100644 --- a/.env.example +++ b/.env.example @@ -17,11 +17,8 @@ LANGCHAIN_TRACING_V2=true LANGCHAIN_PROJECT=default LANGCHAIN_ENDPOINT="https://api.smith.langchain.com" -#DATABASE creds -DB_USER=user -DB_PASS=password -DB_NAME=blt-test #Database URL -DATABASE_URL=postgres://user:password@localhost:5432/blt-test +DATABASE_URL=postgres://user:password@localhost:5432/dbname + #Sentry DSN SENTRY_DSN=https://examplePublicKey@o0.ingest.sentry.io/0 diff --git a/Dockerfile b/Dockerfile index 50ff6ecc5..fcaaacda1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,14 +18,13 @@ RUN apt-get update && apt-get install -y \ libmemcached-dev \ libz-dev + RUN pip install poetry RUN poetry config virtualenvs.create false -RUN poetry lock RUN poetry install -RUN pip install opentelemetry-api opentelemetry-instrumentation +RUN python manage.py migrate +RUN python manage.py loaddata website/fixtures/initial_data.json +# RUN python manage.py collectstatic +RUN python manage.py initsuperuser -RUN python manage.py collectstatic --noinput -CMD python manage.py migrate && \ - python manage.py create_superuser && \ - python manage.py loaddata website/fixtures/initial_data.json diff --git a/docker-compose.yml b/docker-compose.yml index aaea5e052..96b049d42 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,53 +1,10 @@ -version: "3.8" -services: - db: - image: postgres - container_name: postgres-db - restart: always - healthcheck: - test: ["CMD", "pg_isready", "-U", "user" , "-d" , "blt-test"] - interval: 10s - timeout: 5s - retries: 5 - - environment: - - POSTGRES_PASSWORD=${DB_PASS} - - POSTGRES_USER=${DB_USER} - - POSTGRES_DB=${DB_NAME} - ports: - - "5432:5432" - volumes: - - postgres_db:/var/lib/postgresql/data - networks: - app: - ipv4_address: 192.168.92.10 +version: "3" +services: app: + command: "poetry run python manage.py runserver 0.0.0.0:8000" build: . - container_name: app - restart: on-failure - env_file: - - .env - command: poetry run python manage.py runserver 0.0.0.0:8080 - depends_on: - db: - condition: service_healthy - networks: - app: - ipv4_address: 192.168.92.22 volumes: - .:/blt ports: - - "8080:8080" - environment: - DB_HOST: 192.168.92.10 - -volumes: - postgres_db: - -networks: - app: - driver: bridge - ipam: - config: - - subnet: "192.168.92.0/24" \ No newline at end of file + - "8000:8000" From 128e02be03fa87af8d7866872a7204d41f1dd0ba Mon Sep 17 00:00:00 2001 From: DonnieBLT <128622481+DonnieBLT@users.noreply.github.com> Date: Fri, 22 Nov 2024 11:53:31 -0500 Subject: [PATCH 10/10] fix: improve token authentication handling in UpdateIssue function --- website/views/issue.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/website/views/issue.py b/website/views/issue.py index 82a6ee577..2480111bf 100644 --- a/website/views/issue.py +++ b/website/views/issue.py @@ -247,10 +247,13 @@ def UpdateIssue(request): return HttpResponse("Missing issue ID") issue = get_object_or_404(Issue, pk=request.POST.get("issue_pk")) try: - for token in Token.objects.all(): - if request.POST["token"] == token.key: - request.user = User.objects.get(id=token.user_id) - tokenauth = True + tokenauth = False + if "token" in request.POST: + for token in Token.objects.all(): + if request.POST["token"] == token.key: + request.user = User.objects.get(id=token.user_id) + tokenauth = True + break except: tokenauth = False if (