dubles Task and href titles

This commit is contained in:
Xander 2025-04-10 11:54:48 +03:00
parent c3ccf505a8
commit 4210b4cab1
7 changed files with 65603 additions and 59833 deletions

15840
logs/app.log

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

13
model/test.py Normal file
View File

@ -0,0 +1,13 @@
import asyncio
from sqlalchemy import select, func
from database import get_async_session, Job
async def count_jobs():
async for session in get_async_session(): # get_async_session возвращает async generator
result = await session.execute(select(func.count()).select_from(Job))
count = result.scalar_one()
print(f"Всего записей: {count}")
asyncio.run(count_jobs())

File diff suppressed because it is too large Load Diff

View File

@ -67,7 +67,7 @@
{% for job in jobs %} {% for job in jobs %}
<tr> <tr>
<td class="border-b"> <td class="border-b">
<a href="{{ job.job.link }}" target="_blank" class="font-medium whitespace-no-wrap">{{ job.job.job_title [:50] }}</a> <a href="{{ job.job.link }}" target="_blank" class="client-link text-blue-500">{{ job.job.job_title [:50] }}</a>
<div class="text-gray-600 text-xs whitespace-no-wrap">{{ job.job.job_id }}</div> <div class="text-gray-600 text-xs whitespace-no-wrap">{{ job.job.job_id }}</div>
</td> </td>
<td class="text-center border-b">{{job.job.job_company}}</td> <td class="text-center border-b">{{job.job.job_company}}</td>

View File

@ -8,6 +8,7 @@ from sqlalchemy.orm import joinedload
from sqlalchemy import delete from sqlalchemy import delete
from sqlalchemy import update from sqlalchemy import update
from sqlalchemy import or_ from sqlalchemy import or_
from sqlalchemy import select, and_
from sqlalchemy.exc import IntegrityError from sqlalchemy.exc import IntegrityError
from model.database import Client, AppliedJob, Job from model.database import Client, AppliedJob, Job
@ -126,29 +127,62 @@ async def del_jobs(db: AsyncSession, user_id: str):
await db.commit() await db.commit()
# async def add_jobs(db: AsyncSession, user_id: str):
# # Фильтруем вакансии по переданным параметрам
# query = select(Job).filter(Job.active == 3)
# result = await db.execute(query)
# jobs = result.scalars().all() # Получаем список вакансий
# if not jobs:
# return {"message": "Нет вакансий по данному фильтру"}
# # Создаём записи в AppliedJob
# applied_jobs = [
# AppliedJob(client_id=user_id, job_id=job.job_id, status="Scheduled")
# for job in jobs
# ]
# db.add_all(applied_jobs) # Добавляем в сессию
# await db.commit() # Фиксируем изменения
# return {"message": f"{len(applied_jobs)} вакансий добавлено в AppliedJob"}
async def add_jobs(db: AsyncSession, user_id: str): async def add_jobs(db: AsyncSession, user_id: str):
# Фильтруем вакансии по переданным параметрам # Получаем все активные вакансии (предполагаю, что ты хотел использовать True, а не 3)
query = select(Job).filter(Job.active == 3) query = select(Job).filter(Job.active == 3)
result = await db.execute(query) result = await db.execute(query)
jobs = result.scalars().all() # Получаем список вакансий jobs = result.scalars().all()
if not jobs: if not jobs:
return {"message": "Нет вакансий по данному фильтру"} return {"message": "Нет вакансий по данному фильтру"}
# Создаём записи в AppliedJob applied_jobs = []
applied_jobs = [
AppliedJob(client_id=user_id, job_id=job.job_id, status="Scheduled")
for job in jobs
]
db.add_all(applied_jobs) # Добавляем в сессию for job in jobs:
await db.commit() # Фиксируем изменения # Проверка, существует ли уже AppliedJob с таким client_id и job_id
check_query = select(AppliedJob).where(
and_(
AppliedJob.client_id == user_id,
return {"message": f"{len(applied_jobs)} вакансий добавлено в AppliedJob"} AppliedJob.job_id == job.job_id
)
)
check_result = await db.execute(check_query)
existing = check_result.scalar_one_or_none()
if not existing:
applied_jobs.append(
AppliedJob(client_id=user_id, job_id=job.job_id, status="Scheduled")
)
if applied_jobs:
db.add_all(applied_jobs)
await db.commit()
print (f'{"message": f"{len(applied_jobs)} вакансий добавлено в AppliedJob"}')
else:
print (f'{"message": "Все вакансии уже были добавлены ранее"}')
async def get_applied_jobs(db, client_id: int): async def get_applied_jobs(db, client_id: int):