Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
5afed86
Merge pull request #470 from PROCOLLAB-github/fix/chat-ismember-permi…
sh1nkey Oct 20, 2024
dd26e6d
Merge pull request #471 from PROCOLLAB-github/fix/change-email-backend
sh1nkey Oct 20, 2024
6d7022d
Create new_deploy.yml
sh1nkey Oct 20, 2024
c8c0263
Update new_deploy.yml
sh1nkey Oct 20, 2024
d7e3034
Update new_deploy.yml
sh1nkey Oct 20, 2024
1352a1c
Update new_deploy.yml
sh1nkey Oct 20, 2024
289c3a7
Update new_deploy.yml
sh1nkey Oct 20, 2024
4e2876c
Merge pull request #473 from PROCOLLAB-github/new-user-action
sh1nkey Oct 21, 2024
d0cdd04
Update new_deploy.yml
sh1nkey Oct 21, 2024
5dc04a5
Update docker-compose.prod-ci.yml
sh1nkey Oct 21, 2024
48820d9
Update new_deploy.yml
sh1nkey Oct 21, 2024
54ce2db
Merge pull request #475 from PROCOLLAB-github/dev
sh1nkey Oct 23, 2024
ba07d12
Merge pull request #477 from PROCOLLAB-github/dev
pavuchara Oct 24, 2024
8a9aa19
Merge pull request #479 from PROCOLLAB-github/fix/user-verify
sh1nkey Nov 1, 2024
55ec5e4
Update dev-ci.yml
sh1nkey Nov 1, 2024
815ac00
Update dev-ci.yml
sh1nkey Nov 1, 2024
55d7519
Merge pull request #483 from PROCOLLAB-github/dev
sh1nkey Nov 6, 2024
72e58cb
loadout students
sh1nkey Nov 11, 2024
9f00f33
Merge pull request #484 from PROCOLLAB-github/feature/new-students-lo…
sh1nkey Nov 11, 2024
fcabba2
loadout students
sh1nkey Nov 11, 2024
6171954
Merge pull request #485 from PROCOLLAB-github/feature/new-students-lo…
sh1nkey Nov 11, 2024
52e13c2
loadout students
sh1nkey Nov 11, 2024
4aea729
Merge pull request #486 from PROCOLLAB-github/feature/new-students-lo…
sh1nkey Nov 11, 2024
fbcbb3d
loadout students
sh1nkey Nov 11, 2024
f19897f
loadout students
sh1nkey Nov 11, 2024
4989763
Merge pull request #487 from PROCOLLAB-github/feature/new-students-lo…
sh1nkey Nov 11, 2024
4c0c2c2
Merge pull request #496 from PROCOLLAB-github/dev
pavuchara Dec 12, 2024
4d01466
Merge pull request #501 from PROCOLLAB-github/dev
Toksi86 May 23, 2025
725aea8
Merge pull request #503 from PROCOLLAB-github/dev
Toksi86 May 26, 2025
9a72534
Merge pull request #506 from PROCOLLAB-github/dev
Toksi86 Jun 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .github/workflows/new_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: 'new deploy prod server'

on:
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 /home/app/new_procollab_deploy &&
git pull origin master &&

rm -f .env &&
touch .env &&

echo "DJANGO_SECRET_KEY=${{ secrets.DJANGO_SECRET_KEY }}" >> .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 &&
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
17 changes: 16 additions & 1 deletion docker-compose.prod-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
104 changes: 60 additions & 44 deletions users/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,8 +277,7 @@ def get_export_users_emails(self, users):
headers=[
"Имя и фамилия",
"Возраст",
"Интересы",
"ВУЗ / Школа",
"Город",
"Специальность",
"Эл. почта",
]
Expand All @@ -287,63 +286,80 @@ def get_export_users_emails(self, users):
today = date.today()

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")
.prefetch_related(
"collaborations__project",
"collaborations__project__industry",
"skills__skill",
"education",
.filter(
birthday__lte=date_limit_18,
birthday__gte=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))
# 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 user in users:
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,
user.first_name + " " + user.last_name,
(today.year - user.birthday.year)
if user.birthday.year
else None,
user.city,
user.v2_speciality
if user.v2_speciality
else user.speciality,
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,
# ]
# )

# для малолеток указать теги проектов, если нет - навыки
# для старших - специальность, вуз, учебное заведение
Expand Down