Commit Graph

24 Commits

Author SHA1 Message Date
TianyangZhang 7e86ec5ea0 feat(frontend): 首页三栏布局完全重设计,新增企业选择器和岗位联动
- 重构首页为三栏联动布局(企业 + 岗位 + 详情)
- 左栏:深蓝背景企业列表,支持集团和子公司分层显示
  - 选中企业时显示金色左边框 + 背景色变化
  - 每个企业/子公司显示实时在招岗位数
  - 子公司采用缩进 + 树形连线视觉
- 中栏:选中企业的岗位列表
  - 岗位卡片显示位置/薪资/类别标签
  - 朱红左边框高亮选中岗位
- 右栏:岗位详情内容(完整复制 JobDetailView)
  - Banner:深蓝红色渐变背景,显示岗位名/薪资/企业
  - 操作:收藏 + 投递按钮,权限校验
  - 详情:信息网格 + 职位介绍 + 工作地点 + 企业卡片
  - 完整的投递流程和状态反馈
- 配色系统:
  - 深蓝 #0E1E3D(左栏背景)
  - 朱红 #B5272C(选中、强调)
  - 金色 #C8973A(accent)
  - 米色 #FAF7F3(右侧背景)
- 完整的加载/错误/空状态处理
- 骨架屏动画和交互反馈

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-25 13:12:57 +08:00
TianyangZhang 88c0bb223c feat(frontend): 门户导航重设计,采用央企视觉体系
- 导航栏采用深蓝底色 + 金色点缀,体现央企庄重感
- 新增顶部公告条,快速链接登录/注册
- Logo 采用金色圆圈徽章 + 公司名设计
- 导航链接动画效果(下划线滑出)
- 新增用户信息展示区(头像 + 用户名)
- 页脚带红色分割线,强化视觉层级
- 配色:深蓝 #0E1E3D + 朱红 #B5272C + 金色 #C8973A

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-25 13:12:49 +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 f56e562a78 docs: add company jobs three-panel layout design spec 2026-03-25 11:04:03 +08:00
TianyangZhang 46e35074ed feat: complete recruitment website MVP
All backend tests pass (17/17), frontend builds successfully, and superadmin account created.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 08:43:50 +08:00
TianyangZhang ef4c9bf307 feat: add admin management views (jobs, applications, organizations, users)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 08:42:51 +08:00
TianyangZhang ca629a403c feat: add seeker center (resume editor, applications, profile)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 08:42:46 +08:00
TianyangZhang 0a44e4a18d feat: add login and register views with role-based redirect
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 08:42:42 +08:00
TianyangZhang 564fb06e3b feat: add public portal pages (home, job list, job detail, companies)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 08:42:37 +08:00
TianyangZhang 734c83b7fe feat: initialize Vue3 frontend with router, pinia, element-plus
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 08:37:09 +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
TianyangZhang a5959f9a5b docs: add recruitment website implementation plan 2026-03-24 16:50:58 +08:00
TianyangZhang 06878975b7 docs: add recruitment website design spec 2026-03-24 16:32:40 +08:00