From 6d7022d4700adf85004d9eba34c6d26eeffeaed4 Mon Sep 17 00:00:00 2001 From: Alexey Kudelko <110509023+sh1nkey@users.noreply.github.com> Date: Sun, 20 Oct 2024 18:01:18 +0300 Subject: [PATCH 01/15] Create new_deploy.yml --- .github/workflows/new_deploy.yml | 51 ++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 .github/workflows/new_deploy.yml diff --git a/.github/workflows/new_deploy.yml b/.github/workflows/new_deploy.yml new file mode 100644 index 00000000..22de68e8 --- /dev/null +++ b/.github/workflows/new_deploy.yml @@ -0,0 +1,51 @@ +name: 'new deploy prod server' + +on: + push: + branches: + - dev + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: run on server + uses: garygrossgarten/github-action-ssh@release + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USER }} + password: ${{ secrets.SERVER_PASSWORD }} + command: | + cd /root/new_api && + git checkout master && + git pull && + + rm -f .env && + touch .env && + + echo "DJANGO_SECRET_KEY=${{ secrets.DEV_DJANGO_SECRET_KEY }}" >> .env && + + echo "DATABASE_NAME=${{ secrets.DEV_DATABASE_NAME }}" >> .env && + echo "DATABASE_PASSWORD=${{ secrets.DEV_DATABASE_PASSWORD }}" >> .env && + echo "DATABASE_USER=${{ secrets.DEV_DATABASE_USER }}" >> .env && + echo "DATABASE_HOST=${{ secrets.DEV_DATABASE_HOST }}" >> .env && + echo "DATABASE_PORT=${{ secrets.DEV_DATABASE_PORT }}" >> .env && + + echo "EMAIL_USER=${{ secrets.EMAIL_USER }}" >> .env && + echo "EMAIL_PASSWORD=${{ secrets.EMAIL_PASSWORD }}" >> .env && + echo "EMAIL_HOST=${{ secrets.EMAIL_HOST }}" >> .env && + echo "EMAIL_PORT=${{ secrets.EMAIL_PORT }}" >> .env && + echo "SELECTEL_ACCOUNT_ID=${{ secrets.SELECTEL_ACCOUNT_ID }}" >> .env && + echo "SELECTEL_CONTAINER_NAME=${{ secrets.SELECTEL_CONTAINER_NAME }}" >> .env && + echo "SELECTEL_CONTAINER_PASSWORD=${{ secrets.SELECTEL_CONTAINER_PASSWORD }}" >> .env && + echo "SELECTEL_CONTAINER_USERNAME=${{ secrets.SELECTEL_CONTAINER_USERNAME }}" >> .env && + + echo "CLICKUP_API_TOKEN=${{ secrets.CLICKUP_API_TOKEN }}" >> .env && + echo "CLICKUP_SPACE_ID=${{ secrets.CLICKUP_SPACE_ID }}" >> .env && + + echo "SENTRY_DSN=${{ secrets.SENTRY_DSN }}" >> .env && + + echo "UNISENDER_GO_API_KEY=${{ secrets.UNISENDER_GO_API_KEY }}" >> .env && + + docker compose -f docker-compose.prod-ci.yml -p prod up -d --build From c8c0263ac56dfe715dcb3295ae16c4138fb2b446 Mon Sep 17 00:00:00 2001 From: Alexey Kudelko <110509023+sh1nkey@users.noreply.github.com> Date: Sun, 20 Oct 2024 18:01:55 +0300 Subject: [PATCH 02/15] Update new_deploy.yml --- .github/workflows/new_deploy.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/new_deploy.yml b/.github/workflows/new_deploy.yml index 22de68e8..b2b08a11 100644 --- a/.github/workflows/new_deploy.yml +++ b/.github/workflows/new_deploy.yml @@ -1,10 +1,7 @@ name: 'new deploy prod server' on: - push: - branches: - - dev - workflow_dispatch: + workflow_dispatch: jobs: deploy: From d7e3034dc654117eacb6208691d75c40bc4f00e1 Mon Sep 17 00:00:00 2001 From: Alexey Kudelko <110509023+sh1nkey@users.noreply.github.com> Date: Sun, 20 Oct 2024 18:05:30 +0300 Subject: [PATCH 03/15] Update new_deploy.yml --- .github/workflows/new_deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/new_deploy.yml b/.github/workflows/new_deploy.yml index b2b08a11..122e1ed4 100644 --- a/.github/workflows/new_deploy.yml +++ b/.github/workflows/new_deploy.yml @@ -14,7 +14,7 @@ jobs: username: ${{ secrets.SERVER_USER }} password: ${{ secrets.SERVER_PASSWORD }} command: | - cd /root/new_api && + cd /home/app/new_procollab_deploy && git checkout master && git pull && From 1352a1c4b9d7c6a633a0f26213b95c31109709e6 Mon Sep 17 00:00:00 2001 From: Alexey Kudelko <110509023+sh1nkey@users.noreply.github.com> Date: Sun, 20 Oct 2024 18:09:04 +0300 Subject: [PATCH 04/15] Update new_deploy.yml --- .github/workflows/new_deploy.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/new_deploy.yml b/.github/workflows/new_deploy.yml index 122e1ed4..bf27e4cd 100644 --- a/.github/workflows/new_deploy.yml +++ b/.github/workflows/new_deploy.yml @@ -15,8 +15,7 @@ jobs: password: ${{ secrets.SERVER_PASSWORD }} command: | cd /home/app/new_procollab_deploy && - git checkout master && - git pull && + git pull origin master && rm -f .env && touch .env && From 289c3a7464e58149dc807cce20814ef388e09b45 Mon Sep 17 00:00:00 2001 From: Alexey Kudelko <110509023+sh1nkey@users.noreply.github.com> Date: Sun, 20 Oct 2024 21:19:01 +0300 Subject: [PATCH 05/15] Update new_deploy.yml --- .github/workflows/new_deploy.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/new_deploy.yml b/.github/workflows/new_deploy.yml index bf27e4cd..823a8c06 100644 --- a/.github/workflows/new_deploy.yml +++ b/.github/workflows/new_deploy.yml @@ -20,13 +20,13 @@ jobs: rm -f .env && touch .env && - echo "DJANGO_SECRET_KEY=${{ secrets.DEV_DJANGO_SECRET_KEY }}" >> .env && + echo "DJANGO_SECRET_KEY=${{ secrets.DJANGO_SECRET_KEY }}" >> .env && - echo "DATABASE_NAME=${{ secrets.DEV_DATABASE_NAME }}" >> .env && - echo "DATABASE_PASSWORD=${{ secrets.DEV_DATABASE_PASSWORD }}" >> .env && - echo "DATABASE_USER=${{ secrets.DEV_DATABASE_USER }}" >> .env && - echo "DATABASE_HOST=${{ secrets.DEV_DATABASE_HOST }}" >> .env && - echo "DATABASE_PORT=${{ secrets.DEV_DATABASE_PORT }}" >> .env && + echo "DATABASE_NAME=${{ secrets.DATABASE_NAME }}" >> .env && + echo "DATABASE_PASSWORD=${{ secrets.DATABASE_PASSWORD }}" >> .env && + echo "DATABASE_USER=${{ secrets.DATABASE_USER }}" >> .env && + echo "DATABASE_HOST=${{ secrets.DATABASE_HOST }}" >> .env && + echo "DATABASE_PORT=${{ secrets.DATABASE_PORT }}" >> .env && echo "EMAIL_USER=${{ secrets.EMAIL_USER }}" >> .env && echo "EMAIL_PASSWORD=${{ secrets.EMAIL_PASSWORD }}" >> .env && From d0cdd045cd78a8d0bfea7081c8cb56263ff38669 Mon Sep 17 00:00:00 2001 From: Alexey Kudelko <110509023+sh1nkey@users.noreply.github.com> Date: Mon, 21 Oct 2024 16:37:01 +0300 Subject: [PATCH 06/15] Update new_deploy.yml --- .github/workflows/new_deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/new_deploy.yml b/.github/workflows/new_deploy.yml index 823a8c06..23437e19 100644 --- a/.github/workflows/new_deploy.yml +++ b/.github/workflows/new_deploy.yml @@ -44,4 +44,4 @@ jobs: echo "UNISENDER_GO_API_KEY=${{ secrets.UNISENDER_GO_API_KEY }}" >> .env && - docker compose -f docker-compose.prod-ci.yml -p prod up -d --build + docker compose -f docker-compose.prod-ci.yml -p prod up -d --build --force-recreate From 5dc04a5c4ffb81bf308823bd420eef689669e263 Mon Sep 17 00:00:00 2001 From: Alexey Kudelko <110509023+sh1nkey@users.noreply.github.com> Date: Mon, 21 Oct 2024 16:42:24 +0300 Subject: [PATCH 07/15] Update docker-compose.prod-ci.yml --- docker-compose.prod-ci.yml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/docker-compose.prod-ci.yml b/docker-compose.prod-ci.yml index 226551b3..ee1a13eb 100644 --- a/docker-compose.prod-ci.yml +++ b/docker-compose.prod-ci.yml @@ -2,16 +2,31 @@ version: '3.9' services: web: + build: + context: . + dockerfile: ./Dockerfile image: ghcr.io/procollab-github/api:latest restart: unless-stopped volumes: - - log:/procollab/log + - ./log:/procollab/log env_file: - .env environment: HOST: 0.0.0.0 expose: - 8000 + + # web: + # image: ghcr.io/procollab-github/api:latest + # restart: unless-stopped + # volumes: + # - log:/procollab/log + # env_file: + # - .env + # environment: + # HOST: 0.0.0.0 + # expose: + # - 8000 grafana: image: grafana/grafana:latest restart: unless-stopped From 48820d93a9091c53584c925f9c40177b1c8a43a9 Mon Sep 17 00:00:00 2001 From: Alexey Kudelko <110509023+sh1nkey@users.noreply.github.com> Date: Mon, 21 Oct 2024 16:42:47 +0300 Subject: [PATCH 08/15] Update new_deploy.yml --- .github/workflows/new_deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/new_deploy.yml b/.github/workflows/new_deploy.yml index 23437e19..823a8c06 100644 --- a/.github/workflows/new_deploy.yml +++ b/.github/workflows/new_deploy.yml @@ -44,4 +44,4 @@ jobs: echo "UNISENDER_GO_API_KEY=${{ secrets.UNISENDER_GO_API_KEY }}" >> .env && - docker compose -f docker-compose.prod-ci.yml -p prod up -d --build --force-recreate + docker compose -f docker-compose.prod-ci.yml -p prod up -d --build From 55ec5e4092c90e59452f5ae8bae8bdedebf5ef3b Mon Sep 17 00:00:00 2001 From: Alexey Kudelko <110509023+sh1nkey@users.noreply.github.com> Date: Fri, 1 Nov 2024 16:54:22 +0300 Subject: [PATCH 09/15] Update dev-ci.yml --- .github/workflows/dev-ci.yml | 82 ++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/.github/workflows/dev-ci.yml b/.github/workflows/dev-ci.yml index 1600f184..b6f92f74 100644 --- a/.github/workflows/dev-ci.yml +++ b/.github/workflows/dev-ci.yml @@ -1,51 +1,51 @@ -name: 'Deploy dev server' +# name: 'Deploy dev server' -on: - push: - branches: - - dev - workflow_dispatch: +# on: +# push: +# branches: +# - dev +# workflow_dispatch: -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - name: run on server - uses: garygrossgarten/github-action-ssh@release - with: - host: ${{ secrets.DEV_SERVER_HOST }} - username: ${{ secrets.DEV_SERVER_USER }} - password: ${{ secrets.DEV_SERVER_PASSWORD }} - command: | - cd /root/api && - git checkout dev && - git pull && +# jobs: +# deploy: +# runs-on: ubuntu-latest +# steps: +# - name: run on server +# uses: garygrossgarten/github-action-ssh@release +# with: +# host: ${{ secrets.DEV_SERVER_HOST }} +# username: ${{ secrets.DEV_SERVER_USER }} +# password: ${{ secrets.DEV_SERVER_PASSWORD }} +# command: | +# cd /root/api && +# git checkout dev && +# git pull && - rm -f .env && - touch .env && +# rm -f .env && +# touch .env && - echo "DJANGO_SECRET_KEY=${{ secrets.DEV_DJANGO_SECRET_KEY }}" >> .env && +# echo "DJANGO_SECRET_KEY=${{ secrets.DEV_DJANGO_SECRET_KEY }}" >> .env && - echo "DATABASE_NAME=${{ secrets.DEV_DATABASE_NAME }}" >> .env && - echo "DATABASE_PASSWORD=${{ secrets.DEV_DATABASE_PASSWORD }}" >> .env && - echo "DATABASE_USER=${{ secrets.DEV_DATABASE_USER }}" >> .env && - echo "DATABASE_HOST=${{ secrets.DEV_DATABASE_HOST }}" >> .env && - echo "DATABASE_PORT=${{ secrets.DEV_DATABASE_PORT }}" >> .env && +# echo "DATABASE_NAME=${{ secrets.DEV_DATABASE_NAME }}" >> .env && +# echo "DATABASE_PASSWORD=${{ secrets.DEV_DATABASE_PASSWORD }}" >> .env && +# echo "DATABASE_USER=${{ secrets.DEV_DATABASE_USER }}" >> .env && +# echo "DATABASE_HOST=${{ secrets.DEV_DATABASE_HOST }}" >> .env && +# echo "DATABASE_PORT=${{ secrets.DEV_DATABASE_PORT }}" >> .env && - echo "EMAIL_USER=${{ secrets.EMAIL_USER }}" >> .env && - echo "EMAIL_PASSWORD=${{ secrets.EMAIL_PASSWORD }}" >> .env && - echo "EMAIL_HOST=${{ secrets.EMAIL_HOST }}" >> .env && - echo "EMAIL_PORT=${{ secrets.EMAIL_PORT }}" >> .env && - echo "SELECTEL_ACCOUNT_ID=${{ secrets.SELECTEL_ACCOUNT_ID }}" >> .env && - echo "SELECTEL_CONTAINER_NAME=${{ secrets.SELECTEL_CONTAINER_NAME }}" >> .env && - echo "SELECTEL_CONTAINER_PASSWORD=${{ secrets.SELECTEL_CONTAINER_PASSWORD }}" >> .env && - echo "SELECTEL_CONTAINER_USERNAME=${{ secrets.SELECTEL_CONTAINER_USERNAME }}" >> .env && +# echo "EMAIL_USER=${{ secrets.EMAIL_USER }}" >> .env && +# echo "EMAIL_PASSWORD=${{ secrets.EMAIL_PASSWORD }}" >> .env && +# echo "EMAIL_HOST=${{ secrets.EMAIL_HOST }}" >> .env && +# echo "EMAIL_PORT=${{ secrets.EMAIL_PORT }}" >> .env && +# echo "SELECTEL_ACCOUNT_ID=${{ secrets.SELECTEL_ACCOUNT_ID }}" >> .env && +# echo "SELECTEL_CONTAINER_NAME=${{ secrets.SELECTEL_CONTAINER_NAME }}" >> .env && +# echo "SELECTEL_CONTAINER_PASSWORD=${{ secrets.SELECTEL_CONTAINER_PASSWORD }}" >> .env && +# echo "SELECTEL_CONTAINER_USERNAME=${{ secrets.SELECTEL_CONTAINER_USERNAME }}" >> .env && - echo "CLICKUP_API_TOKEN=${{ secrets.CLICKUP_API_TOKEN }}" >> .env && - echo "CLICKUP_SPACE_ID=${{ secrets.CLICKUP_SPACE_ID }}" >> .env && +# echo "CLICKUP_API_TOKEN=${{ secrets.CLICKUP_API_TOKEN }}" >> .env && +# echo "CLICKUP_SPACE_ID=${{ secrets.CLICKUP_SPACE_ID }}" >> .env && - echo "SENTRY_DSN=${{ secrets.SENTRY_DSN }}" >> .env && +# echo "SENTRY_DSN=${{ secrets.SENTRY_DSN }}" >> .env && - echo "UNISENDER_GO_API_KEY=${{ secrets.UNISENDER_GO_API_KEY }}" >> .env && +# echo "UNISENDER_GO_API_KEY=${{ secrets.UNISENDER_GO_API_KEY }}" >> .env && - docker compose -f docker-compose.dev-ci.yml up -d --build --force-recreate +# docker compose -f docker-compose.dev-ci.yml up -d --build --force-recreate From 815ac0060695657359cb03fce72f725c7b10fec1 Mon Sep 17 00:00:00 2001 From: Alexey Kudelko <110509023+sh1nkey@users.noreply.github.com> Date: Fri, 1 Nov 2024 16:55:06 +0300 Subject: [PATCH 10/15] Update dev-ci.yml --- .github/workflows/dev-ci.yml | 82 ++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/.github/workflows/dev-ci.yml b/.github/workflows/dev-ci.yml index b6f92f74..1600f184 100644 --- a/.github/workflows/dev-ci.yml +++ b/.github/workflows/dev-ci.yml @@ -1,51 +1,51 @@ -# name: 'Deploy dev server' +name: 'Deploy dev server' -# on: -# push: -# branches: -# - dev -# workflow_dispatch: +on: + push: + branches: + - dev + workflow_dispatch: -# jobs: -# deploy: -# runs-on: ubuntu-latest -# steps: -# - name: run on server -# uses: garygrossgarten/github-action-ssh@release -# with: -# host: ${{ secrets.DEV_SERVER_HOST }} -# username: ${{ secrets.DEV_SERVER_USER }} -# password: ${{ secrets.DEV_SERVER_PASSWORD }} -# command: | -# cd /root/api && -# git checkout dev && -# git pull && +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: run on server + uses: garygrossgarten/github-action-ssh@release + with: + host: ${{ secrets.DEV_SERVER_HOST }} + username: ${{ secrets.DEV_SERVER_USER }} + password: ${{ secrets.DEV_SERVER_PASSWORD }} + command: | + cd /root/api && + git checkout dev && + git pull && -# rm -f .env && -# touch .env && + rm -f .env && + touch .env && -# echo "DJANGO_SECRET_KEY=${{ secrets.DEV_DJANGO_SECRET_KEY }}" >> .env && + echo "DJANGO_SECRET_KEY=${{ secrets.DEV_DJANGO_SECRET_KEY }}" >> .env && -# echo "DATABASE_NAME=${{ secrets.DEV_DATABASE_NAME }}" >> .env && -# echo "DATABASE_PASSWORD=${{ secrets.DEV_DATABASE_PASSWORD }}" >> .env && -# echo "DATABASE_USER=${{ secrets.DEV_DATABASE_USER }}" >> .env && -# echo "DATABASE_HOST=${{ secrets.DEV_DATABASE_HOST }}" >> .env && -# echo "DATABASE_PORT=${{ secrets.DEV_DATABASE_PORT }}" >> .env && + echo "DATABASE_NAME=${{ secrets.DEV_DATABASE_NAME }}" >> .env && + echo "DATABASE_PASSWORD=${{ secrets.DEV_DATABASE_PASSWORD }}" >> .env && + echo "DATABASE_USER=${{ secrets.DEV_DATABASE_USER }}" >> .env && + echo "DATABASE_HOST=${{ secrets.DEV_DATABASE_HOST }}" >> .env && + echo "DATABASE_PORT=${{ secrets.DEV_DATABASE_PORT }}" >> .env && -# echo "EMAIL_USER=${{ secrets.EMAIL_USER }}" >> .env && -# echo "EMAIL_PASSWORD=${{ secrets.EMAIL_PASSWORD }}" >> .env && -# echo "EMAIL_HOST=${{ secrets.EMAIL_HOST }}" >> .env && -# echo "EMAIL_PORT=${{ secrets.EMAIL_PORT }}" >> .env && -# echo "SELECTEL_ACCOUNT_ID=${{ secrets.SELECTEL_ACCOUNT_ID }}" >> .env && -# echo "SELECTEL_CONTAINER_NAME=${{ secrets.SELECTEL_CONTAINER_NAME }}" >> .env && -# echo "SELECTEL_CONTAINER_PASSWORD=${{ secrets.SELECTEL_CONTAINER_PASSWORD }}" >> .env && -# echo "SELECTEL_CONTAINER_USERNAME=${{ secrets.SELECTEL_CONTAINER_USERNAME }}" >> .env && + echo "EMAIL_USER=${{ secrets.EMAIL_USER }}" >> .env && + echo "EMAIL_PASSWORD=${{ secrets.EMAIL_PASSWORD }}" >> .env && + echo "EMAIL_HOST=${{ secrets.EMAIL_HOST }}" >> .env && + echo "EMAIL_PORT=${{ secrets.EMAIL_PORT }}" >> .env && + echo "SELECTEL_ACCOUNT_ID=${{ secrets.SELECTEL_ACCOUNT_ID }}" >> .env && + echo "SELECTEL_CONTAINER_NAME=${{ secrets.SELECTEL_CONTAINER_NAME }}" >> .env && + echo "SELECTEL_CONTAINER_PASSWORD=${{ secrets.SELECTEL_CONTAINER_PASSWORD }}" >> .env && + echo "SELECTEL_CONTAINER_USERNAME=${{ secrets.SELECTEL_CONTAINER_USERNAME }}" >> .env && -# echo "CLICKUP_API_TOKEN=${{ secrets.CLICKUP_API_TOKEN }}" >> .env && -# echo "CLICKUP_SPACE_ID=${{ secrets.CLICKUP_SPACE_ID }}" >> .env && + echo "CLICKUP_API_TOKEN=${{ secrets.CLICKUP_API_TOKEN }}" >> .env && + echo "CLICKUP_SPACE_ID=${{ secrets.CLICKUP_SPACE_ID }}" >> .env && -# echo "SENTRY_DSN=${{ secrets.SENTRY_DSN }}" >> .env && + echo "SENTRY_DSN=${{ secrets.SENTRY_DSN }}" >> .env && -# echo "UNISENDER_GO_API_KEY=${{ secrets.UNISENDER_GO_API_KEY }}" >> .env && + echo "UNISENDER_GO_API_KEY=${{ secrets.UNISENDER_GO_API_KEY }}" >> .env && -# docker compose -f docker-compose.dev-ci.yml up -d --build --force-recreate + docker compose -f docker-compose.dev-ci.yml up -d --build --force-recreate From 72e58cb0ee90af06fa325014a6adc78e480da33d Mon Sep 17 00:00:00 2001 From: Alexey Kudelko Date: Tue, 12 Nov 2024 00:49:57 +0300 Subject: [PATCH 11/15] loadout students --- users/admin.py | 111 +++++++++++++++++++++++++++---------------------- 1 file changed, 61 insertions(+), 50 deletions(-) diff --git a/users/admin.py b/users/admin.py index aaf4c616..37cba5b4 100644 --- a/users/admin.py +++ b/users/admin.py @@ -253,8 +253,7 @@ def get_export_users_emails(self, users): headers=[ "Имя и фамилия", "Возраст", - "Интересы", - "ВУЗ / Школа", + "ВУЗ", "Специальность", "Эл. почта", ] @@ -262,65 +261,77 @@ def get_export_users_emails(self, users): today = date.today() - date_limit_18 = date(today.year - 18, today.month, today.day) - users = ( - CustomUser.objects.all() - .select_related("v2_speciality") - .prefetch_related( - "collaborations__project", - "collaborations__project__industry", - "skills__skill", - "education", - ) + # date_limit_18 = date(today.year - 18, today.month, today.day) + user_ed = ( + UserEducation.objects + .select_related("user", "user__v2_speciality") + .filter(education_status="Студент") ) - little_mans = users.filter(birthday__lte=date_limit_18) - big_mans = users.exclude(id__in=little_mans.values_list("id", flat=True)) + # users = ( + # CustomUser.objects.all() + # .select_related("v2_speciality") + # ) + # little_mans = users.filter(birthday__lte=date_limit_18) + # big_mans = users.exclude(id__in=little_mans.values_list("id", flat=True)) # whole_quality = users.count() # quantity_little_mans = little_mans.count() # quantity_big_mans = whole_quality - quantity_little_mans - for baby in little_mans: - interests = [ - collab.project.industry.name if collab.project.industry else "" - for collab in baby.collaborations.all() - ] - if not len(interests): - interests = [ - skill_to_obj.skill.name if skill_to_obj.skill else "" - for skill_to_obj in baby.skills.all() - ] - if not len(interests): - interests = baby.key_skills.split(",") if baby.key_skills else [] + for ed in user_ed: response_data.append( - [ - baby.first_name + " " + baby.last_name, - today.year - baby.birthday.year, - ", ".join(interests), - "; ".join(baby.education.values_list("organization_name", flat=True)), - baby.v2_speciality if baby.v2_speciality else baby.speciality, - baby.email, - ] - ) + [ + ed.user.first_name + " " + ed.user.last_name, + (today.year - ed.user.birthday.year) if ed.user.birthday.year else None, + ed.organization_name, + ed.user.speciality_v2 if ed.user.speciality_v2 else ed.user.speciality, + ed.user.email - for big_man in big_mans: - industry_names = [ - collab.project.industry.name if collab.project.industry else "" - for collab in big_man.collaborations.all() ] - response_data.append( - [ - big_man.first_name + " " + big_man.last_name, - today.year - big_man.birthday.year, - ", ".join(industry_names), - "; ".join(big_man.education.values_list("organization_name", flat=True)), - big_man.v2_speciality - if big_man.v2_speciality - else big_man.speciality, - big_man.email, - ] + ) + # for baby in little_mans: + # interests = [ + # collab.project.industry.name if collab.project.industry else "" + # for collab in baby.collaborations.all() + # ] + # if not len(interests): + # interests = [ + # skill_to_obj.skill.name if skill_to_obj.skill else "" + # for skill_to_obj in baby.skills.all() + # ] + # if not len(interests): + # interests = baby.key_skills.split(",") if baby.key_skills else [] + # response_data.append( + # [ + # baby.first_name + " " + baby.last_name, + # today.year - baby.birthday.year, + # ", ".join(interests), + # "; ".join(baby.education.values_list("organization_name", flat=True)), + # baby.v2_speciality if baby.v2_speciality else baby.speciality, + # baby.email, + # ] + # ) + # + # for big_man in big_mans: + # industry_names = [ + # collab.project.industry.name if collab.project.industry else "" + # for collab in big_man.collaborations.all() + # ] + # response_data.append( + # [ + # big_man.first_name + " " + big_man.last_name, + # today.year - big_man.birthday.year, + # ", ".join(industry_names), + # "; ".join(big_man.education.values_list("organization_name", flat=True)), + # big_man.v2_speciality + # if big_man.v2_speciality + # else big_man.speciality, + # big_man.email, + # ] + # ) + # для малолеток указать теги проектов, если нет - навыки # для старших - специальность, вуз, учебное заведение From fcabba2f199e5402801e8569e19ec28185b81ab7 Mon Sep 17 00:00:00 2001 From: Alexey Kudelko Date: Tue, 12 Nov 2024 00:50:54 +0300 Subject: [PATCH 12/15] loadout students --- users/admin.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/users/admin.py b/users/admin.py index 37cba5b4..80ff242d 100644 --- a/users/admin.py +++ b/users/admin.py @@ -262,11 +262,9 @@ def get_export_users_emails(self, users): today = date.today() # date_limit_18 = date(today.year - 18, today.month, today.day) - user_ed = ( - UserEducation.objects - .select_related("user", "user__v2_speciality") - .filter(education_status="Студент") - ) + user_ed = UserEducation.objects.select_related( + "user", "user__v2_speciality" + ).filter(education_status="Студент") # users = ( # CustomUser.objects.all() # .select_related("v2_speciality") @@ -280,15 +278,17 @@ def get_export_users_emails(self, users): for ed in user_ed: response_data.append( - [ - ed.user.first_name + " " + ed.user.last_name, - (today.year - ed.user.birthday.year) if ed.user.birthday.year else None, - ed.organization_name, - ed.user.speciality_v2 if ed.user.speciality_v2 else ed.user.speciality, - ed.user.email - - ] - + [ + ed.user.first_name + " " + ed.user.last_name, + (today.year - ed.user.birthday.year) + if ed.user.birthday.year + else None, + ed.organization_name, + ed.user.speciality_v2 + if ed.user.speciality_v2 + else ed.user.speciality, + ed.user.email, + ] ) # for baby in little_mans: From 52e13c2609ad84dcbd0736503e2a84cedc5be5ff Mon Sep 17 00:00:00 2001 From: Alexey Kudelko Date: Tue, 12 Nov 2024 00:59:08 +0300 Subject: [PATCH 13/15] loadout students --- users/admin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/users/admin.py b/users/admin.py index 80ff242d..cca10573 100644 --- a/users/admin.py +++ b/users/admin.py @@ -284,8 +284,8 @@ def get_export_users_emails(self, users): if ed.user.birthday.year else None, ed.organization_name, - ed.user.speciality_v2 - if ed.user.speciality_v2 + ed.user.v2_speciality + if ed.user.v2_speciality else ed.user.speciality, ed.user.email, ] From fbcbb3d634cd2c3bd9886752c619a140ddeb02f3 Mon Sep 17 00:00:00 2001 From: Alexey Kudelko Date: Tue, 12 Nov 2024 01:11:47 +0300 Subject: [PATCH 14/15] loadout students --- users/admin.py | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/users/admin.py b/users/admin.py index cca10573..86c06dd3 100644 --- a/users/admin.py +++ b/users/admin.py @@ -253,7 +253,7 @@ def get_export_users_emails(self, users): headers=[ "Имя и фамилия", "Возраст", - "ВУЗ", + "Город", "Специальность", "Эл. почта", ] @@ -261,14 +261,19 @@ def get_export_users_emails(self, users): today = date.today() - # date_limit_18 = date(today.year - 18, today.month, today.day) - user_ed = UserEducation.objects.select_related( - "user", "user__v2_speciality" - ).filter(education_status="Студент") - # users = ( - # CustomUser.objects.all() - # .select_related("v2_speciality") - # ) + date_limit_18 = date(today.year - 18, today.month, today.day) + date_limit_22 = date(today.year - 22, today.month, today.day) + # user_ed = UserEducation.objects.select_related( + # "user", "user__v2_speciality" + # ).filter(education_status="Студент") + users = ( + CustomUser.objects.all() + .select_related("v2_speciality") + .filter( + birthday__gte=date_limit_18, + birthday__lte=date_limit_22 + ) + ) # little_mans = users.filter(birthday__lte=date_limit_18) # big_mans = users.exclude(id__in=little_mans.values_list("id", flat=True)) @@ -276,18 +281,18 @@ def get_export_users_emails(self, users): # quantity_little_mans = little_mans.count() # quantity_big_mans = whole_quality - quantity_little_mans - for ed in user_ed: + for user in users: response_data.append( [ - ed.user.first_name + " " + ed.user.last_name, - (today.year - ed.user.birthday.year) - if ed.user.birthday.year + user.first_name + " " + user.last_name, + (today.year - user.birthday.year) + if user.birthday.year else None, - ed.organization_name, - ed.user.v2_speciality - if ed.user.v2_speciality - else ed.user.speciality, - ed.user.email, + user.city, + user.v2_speciality + if user.v2_speciality + else user.speciality, + user.email, ] ) From f19897fb58dce59247a1bbfc22f59aebbb06f6b8 Mon Sep 17 00:00:00 2001 From: Alexey Kudelko Date: Tue, 12 Nov 2024 01:18:16 +0300 Subject: [PATCH 15/15] loadout students --- users/admin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/users/admin.py b/users/admin.py index 86c06dd3..8ea0466d 100644 --- a/users/admin.py +++ b/users/admin.py @@ -270,8 +270,8 @@ def get_export_users_emails(self, users): CustomUser.objects.all() .select_related("v2_speciality") .filter( - birthday__gte=date_limit_18, - birthday__lte=date_limit_22 + birthday__lte=date_limit_18, + birthday__gte=date_limit_22 ) ) # little_mans = users.filter(birthday__lte=date_limit_18)