Commit Graph
142 Commits
Author SHA1 Message Date
lewis_yan 74ab2caf29 feat(login): add /login/supplier/ route for supplier portal 2026-04-02 09:50:49 +08:00
lewis_yan 9d581dd5d3 feat(login): add SupplierLoginSerializer and SupplierLoginView for supplier portal 2026-04-02 09:48:46 +08:00
lewis_yan 2efd971449 chore: remove version upgrade log from user dropdown menu 2026-04-02 09:32:16 +08:00
lewis_yan 4582dd5ef4 Merge branch 'develop' of http://192.168.80.90:8086/pisteams/pis into develop 2026-04-02 09:22:18 +08:00
lewis_yan 32c0688951 chore: add .planning and docs/superpowers to .gitignore
Remove tracked planning files from git index.
2026-04-02 09:22:02 +08:00
lewis_yan 27b98bc73f feat(dashboard): complete buyer/supplier dashboard redesign
Backend:
- Fix JWT auth header format (use "JWT " prefix)
- Fix DashboardView to return data for superadmin users
- Return empty structure when no business data exists
- Use serializers for response validation

Frontend:
- Redesign BuyerDashboard with new UI matching design spec
- Redesign SupplierDashboard with consistent styling
- Add role switcher for users with both buyer/supplier roles
- Fix FontAwesome icon class names (fa vs fas)
- Update tagsView title when switching roles via mitt event
- Add i18n translations for dashboard

Auth fixes:
- Fix token storage to use sessionStorage instead of Cookies
- Add route initialization guard to prevent duplicate routing
- Fix login flow for token handling

Files:
- Add BuyerDashboard, SupplierDashboard, KpiCard, TrendChart components
- Add dashboard API and Pinia store
- Add mitt event type for tagsView name update
2026-04-02 09:20:12 +08:00
lewis_yan 7240d4f0c9 refactor(dashboard): rewrite views.py using DRF CBV pattern
- Move serializers into views.py for self-contained CBV
- Use DashboardViewSet with list() method for GET
- Add proper docstrings
- Use serializer for response validation
2026-04-01 19:27:21 +08:00
lewis_yan 574d9557cf fix(dashboard): use DashboardView instead of placeholder in urls.py
The urls.py was still using a placeholder view function. Updated to import
and use the proper DashboardView.as_view() from views.py.
2026-04-01 19:21:39 +08:00
lewis_yan f6313a93ce feat: add cross-platform service management scripts
Add comprehensive scripts for managing PIS project services:
- start-backend.ps1/.sh: Start Django backend with uvicorn/gunicorn
- start-frontend.ps1/.sh: Start Vue frontend dev server
- start-celery.ps1/.sh: Start Celery worker and beat
- stop-all.ps1/.sh: Stop all services gracefully
- stop-celery.ps1/.sh: Stop Celery services only
- view-logs.ps1/.sh: View and tail log files
- check-status.ps1/.sh: Check service status and ports

Cross-platform support:
- Windows PowerShell scripts with English output (UTF-8 safe)
- Unix/Linux/macOS Bash scripts with Chinese output
- WMI queries for PowerShell 5.1 compatibility
- Unified Makefile and make.ps1 orchestrators

Also add scripts-documentation.md with comprehensive usage guide.
2026-04-01 19:11:45 +08:00
lewis_yan c55263f742 feat(dashboard): add dashboard route 2026-04-01 19:11:03 +08:00
lewis_yan 5106cfcdaa feat(dashboard): add buyer/supplier dashboard pages 2026-04-01 19:10:31 +08:00
lewis_yan 15d06266b7 feat(dashboard): add dashboard Vue components 2026-04-01 19:09:24 +08:00
lewis_yan c4a754753e feat(dashboard): add dashboard API and Pinia store 2026-04-01 19:08:27 +08:00
lewis_yan 0bd82e517b feat(dashboard): implement dashboard view with role-based data filtering 2026-04-01 19:07:47 +08:00
lewis_yan 54976e0335 feat(dashboard): add dashboard serializers 2026-04-01 19:07:00 +08:00
lewis_yan c3fb11c481 feat(dashboard): create dashboard app skeleton with URL routing 2026-04-01 19:06:17 +08:00
lewis_yan a7e5bf8ddf docs: add dashboard redesign implementation plan
Comprehensive plan for buyer/supplier dashboard with:
- Role-based unified API
- Backend serializers and views
- Frontend Pinia store and Vue components
- ECharts trend visualization
2026-04-01 19:04:56 +08:00
lewis_yan b29f4bf71a docs: add dashboard redesign spec
Design document for buyer/supplier dashboard with role-based
data filtering, unified API, and frontend components.
2026-04-01 19:00:29 +08:00
lewis_yan 1c664060ab docs: add .planning/codebase/ with 7 structured documents
Mapped codebase with 4 parallel agents covering:
- TECH: STACK.md, INTEGRATIONS.md
- ARCH: ARCHITECTURE.md, STRUCTURE.md
- QUALITY: CONVENTIONS.md, TESTING.md
- CONCERNS: CONCERNS.md
2026-04-01 18:48:30 +08:00
allen_xiong 6d4e431a39 Merge branch 'develop' into 'develop'
新增邮件类型;调整部分前端效果

See merge request pisteams/pis!34
2026-04-01 09:36:20 +00:00
nebula_chen 0a1d5e29fb 新增邮件类型;调整部分前端效果
询价单详情页仅查看模式显示“询价单操作日志”;修改受邀供应商均报价提醒采购人员邮件文案;新增超过报价截止时间提醒采购人员邮件模板及调用
2026-04-01 17:18:59 +08:00
lewis_yan d16ae56f9a fix: fix OpenSSL and Kerberos package names for Debian Trixie
libcrypto3 doesn't exist as separate package on Trixie (part of libssl3).
Use correct package names: libssl3, libkrb5-3, krb5-user.
2026-04-01 16:12:51 +08:00
lewis_yan 0dc5a3d730 fix: add OpenSSL and Kerberos dependencies for msodbcsql18 driver
The ODBC Driver 18 requires libssl, libcrypto, and Kerberos libraries
to function. Also set LD_LIBRARY_PATH to include the driver lib64 directory.
2026-04-01 16:07:06 +08:00
lewis_yan c146409012 fix: manually register ODBC Driver 18 by appending to odbcinst.ini
Instead of using odbcinst command (location uncertain), directly append
driver config to /etc/odbcinst.ini
2026-04-01 15:56:25 +08:00
lewis_yan f3d367db02 fix: remove unnecessary odbcinst copy, use system-installed version
The odbcinst binary is provided by unixodbc installed in the runtime
image, not copied from builder.
2026-04-01 15:50:54 +08:00
lewis_yan 8e62124695 fix: copy odbcinst binary from builder to runtime image
The odbcinst binary is installed in /usr/bin/ by unixodbc, not
/usr/local/bin/. Copy it explicitly to the runtime image.
2026-04-01 15:48:25 +08:00
lewis_yan e65bc8b8b1 fix: use libodbc2 instead of libodbc1 for Debian Trixie 2026-04-01 15:44:59 +08:00
lewis_yan 5f4d27952a fix: register ODBC Driver 18 in runtime image
The msodbcsql18 driver needs to be registered with odbcinst so that
unixODBC can find it when pyodbc connects to SQL Server.
2026-04-01 15:30:46 +08:00
lewis_yan 5f37a9391b fix: use ODBC Driver 18 for SQL Server instead of Driver 17
The settings.py is configured to use "ODBC Driver 18 for SQL Server",
so we need to install msodbcsql18 package.
2026-04-01 15:10:59 +08:00
lewis_yan 065278a15f fix: add unixodbc runtime library to Dockerfile
The runtime image needs libodbc.so.2 for pyodbc to work with SQL Server.
2026-04-01 15:06:03 +08:00
lewis_yan 8c7761ed26 fix: correct msodbcsql17 library path in Dockerfile
The msodbcsql17 package installs to /opt/microsoft/msodbcsql17/, not
/usr/lib/x86_64-linux-gnu/. Copy from the correct path in runtime image.
2026-04-01 15:02:16 +08:00
allen_xiong 670bb9c12f Merge branch 'develop' into 'develop'
新增 - 所有供应商均提交报价邮件通知采购商;供应商用户信息表及相应序列化器

See merge request pisteams/pis!33
2026-04-01 06:49:42 +00:00
nebula_chen c3ecfbfd56 实现询价操作日志查询接口;实现前端页面“询价操作日志查询” 2026-04-01 14:47:31 +08:00
lewis_yan 83fa2ea313 chore: remove Jenkins build image stage use --no-cache 2026-04-01 14:45:48 +08:00
lewis_yan 0a6e44d3de chore: update dockerfile no cache 2026-04-01 14:42:39 +08:00
lewis_yan 38d7da3762 fix: copy ODBC driver libraries to runtime image in backend Dockerfile
msodbcsql17 and its dependencies (libodbc.so.2, libodbcinst.so.2,
libmsodbcsql-17.so, libiconv.so.2, libcharset.so.1) were only installed
in the builder stage but not copied to the runtime image, causing
"libodbc.so.2: cannot open shared object file" at startup.
2026-04-01 14:40:44 +08:00
lewis_yan 08e3767d6b chore: use /api proxy in web .env.production
Switch VITE_API_URL from direct backend URL to /api proxy,
allowing nginx to handle routing to the backend container.
2026-04-01 11:47:40 +08:00
nebula_chen 0424a3e3f4 补充询价操作履历表更新逻辑;修复前端bug--报价单仅拉起10条数据;杂采报价相应表结构名更新前缀pis_misc_ 2026-04-01 11:02:35 +08:00
lewis_yan 0a541826d4 chore: remove redundant Install & Build stage (Docker handles build) 2026-04-01 10:58:51 +08:00
lewis_yan a44a0d847e fix: correct COPY paths in web Dockerfile (build context is project root) 2026-04-01 10:54:26 +08:00
lewis_yan 30ba17c91e chore: use pnpm instead of yarn in Jenkinsfile 2026-04-01 10:53:43 +08:00
lewis_yan cf22b8cfe5 chore: use pnpm instead of yarn in web Dockerfile 2026-04-01 10:51:25 +08:00
lewis_yan e0545af483 chore: restore Dockerfiles and update Jenkinsfile paths
- Add web/Dockerfile for frontend image build
- Add backend/Dockerfile for backend image build
- Update Jenkinsfile paths from docker_env/ to web/ and backend/

Note: docker_env directory was removed; Dockerfiles now placed in respective app directories.
2026-04-01 10:50:06 +08:00
lewis_yan 56aca2107b chore: add pnpm-lock.yaml for faster builds 2026-04-01 10:39:57 +08:00
lewis_yan 9ee8a04714 chore: remove docker_env directory
部署配置已迁移到独立仓库
2026-04-01 10:35:43 +08:00
lewis_yan f50c55408d fix: push latest tag after build 2026-04-01 10:28:10 +08:00
lewis_yan dfe5284ba1 fix: push latest tag after build 2026-04-01 10:28:00 +08:00
lewis_yan ea17214803 chore: remove docker-compose files
Docker compose is no longer used for deployment.
2026-04-01 10:27:59 +08:00
nebula_chen 90103f6126 新增 - 所有供应商均提交报价邮件通知采购商;供应商用户信息表及相应序列化器 2026-04-01 09:43:44 +08:00
allen_xiong bf531c13fa Merge branch 'develop' into 'develop'
报价单详情窗口、询价单详情窗口、比价窗口转为对应路由页面;

See merge request pisteams/pis!32
2026-04-01 01:12:05 +00:00