Commit Graph

14 Commits

Author SHA1 Message Date
TianyangZhang 536be6c1a1 refactor: 调整岗位、应用等模块,适配三栏设计
后端变更:
- 岗位序列化器调整,支持组织树形结构
- 应用序列化器更新
- 岗位视图逻辑兼容新的过滤需求
- 新增 JobFavorite 数据库迁移(岗位收藏功能)
- 岗位URL路由配置更新

前端变更:
- 岗位详情页面兼容新设计
- 求职者应用、简历页面样式调整
- 路由配置更新,支持三栏布局
- App.vue 组件调整
- Vite 配置微调

这些调整为首页三栏布局的完整实现提供支撑。

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-25 13:13:09 +08:00
TianyangZhang 11d1cec192 feat(backend): 组织序列化器添加在招岗位数统计
- JobListSerializer 和 JobDetailSerializer 新增 job_count 字段
- 统计 status='published' 的岗位数量
- 前端展示每个公司/子公司的在招岗位数

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-25 13:12:43 +08:00
TianyangZhang 619ca19f87 fix: prevent IDOR in application status update endpoint
Replace class-level queryset attribute with get_queryset() method that
scopes Application objects to the requesting admin's organization,
preventing regular admins from modifying applications belonging to
other organizations via pk enumeration.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 08:31:31 +08:00
TianyangZhang 0ccd943255 feat: add Application model with status tracking and email notifications
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 17:46:14 +08:00
TianyangZhang cc39c22e87 feat: add Resume model with JSONB fields and file upload
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 17:43:24 +08:00
TianyangZhang f5d753d441 fix: fix jobs view filter backend and defensive queryset
- Replace inline __import__ with proper DjangoFilterBackend import
- Add SearchFilter to JobPublicViewSet filter_backends
- Add defensive check for missing organization_id in get_queryset

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 17:41:58 +08:00
TianyangZhang f228ff0697 feat: add Job model with search/filter and role-based access
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 17:39:58 +08:00
TianyangZhang cc2cd40532 fix: fix organizations view queryset and add API tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 17:37:54 +08:00
TianyangZhang 7e089bd5ec feat: add Organization model with tree structure
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 17:34:56 +08:00
TianyangZhang c3466f4866 feat: add custom User model with role-based permissions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 17:11:40 +08:00
TianyangZhang 4cee7e9569 chore: add pytest configuration for Django tests 2026-03-24 17:06:18 +08:00
TianyangZhang b19c29e24f fix: correct settings module references and code quality issues
- Fix asgi.py and wsgi.py to point to config.settings.development
- Move timedelta import to top of base.py (PEP 8)
- Add STATIC_ROOT to base.py
- Add Redis OPTIONS with timeout config
- Add dev-only comments for ALLOWED_HOSTS and CORS_ALLOW_ALL_ORIGINS
2026-03-24 17:05:36 +08:00
TianyangZhang 82da70de0d fix: set default DJANGO_SETTINGS_MODULE to development 2026-03-24 17:03:11 +08:00
TianyangZhang f34b1cb000 feat: initialize Django backend project structure
Sets up Django 4.2 project skeleton with split settings (base/development),
JWT auth via simplejwt, DRF, CORS, PostgreSQL, Redis cache config, and
.gitignore. Apps (accounts, organizations, jobs, resumes, applications)
to be created in subsequent tasks.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 17:01:28 +08:00