Commit Graph
162 Commits
Author SHA1 Message Date
lewis_yan 8a4498feaf fix: set layout logo title to 'PIS' 2026-04-02 10:24:49 +08:00
lewis_yan f35ab7dbf9 feat: set menu bar title to 'PIS', login pages use full name 2026-04-02 10:22:48 +08:00
lewis_yan 8d0c9b0607 revert: restore full title on login pages, menu bar will use separate PIS setting 2026-04-02 10:22:24 +08:00
lewis_yan 449151df3c fix: hardcode 'PIS' as site title in login pages 2026-04-02 10:21:31 +08:00
lewis_yan 7bb0d406bd feat(login): update site brand title to 'Procurement Inquiry System' 2026-04-02 10:15:44 +08:00
lewis_yan 6b8d31e4a3 fix: add lodash import to supplier.vue 2026-04-02 10:14:30 +08:00
lewis_yan f54d7b85a3 fix(login): allow /login/supplier route to be accessed without token 2026-04-02 10:01:03 +08:00
lewis_yan e05ad38dc1 feat(login): use supplier-specific background image for supplier login page 2026-04-02 09:59:13 +08:00
lewis_yan eb1e8c3f5d test: add CurrencyViewSet tests for basicinfo 2026-04-02 09:58:36 +08:00
lewis_yan 8d46b5c4fa test: add CurrencySerializer tests for basicinfo 2026-04-02 09:58:19 +08:00
lewis_yan 5df83edb1e test: add CurrencyFactory and UnitFactory for basicinfo app 2026-04-02 09:58:03 +08:00
lewis_yan 36065c33d4 feat(login): add clear '采购方登录' title to buyer login page 2026-04-02 09:57:53 +08:00
lewis_yan dfc0c742c2 test: add basicinfo tests directory 2026-04-02 09:57:10 +08:00
lewis_yan 6ba1f57453 test: add UserFactory for system models 2026-04-02 09:57:02 +08:00
lewis_yan 23b892b05e test: add global conftest.py with fixtures 2026-04-02 09:56:52 +08:00
lewis_yan f09af5b0ce test: add global tests directory structure 2026-04-02 09:56:41 +08:00
lewis_yan 388efbe918 test: add pytest.ini configuration 2026-04-02 09:56:29 +08:00
lewis_yan 0b27dd143e feat(login): add supplier login page component
- Create supplier.vue with green theme to distinguish from buyer portal
- Modify account.vue to dynamically select login API based on URL
2026-04-02 09:54:14 +08:00
lewis_yan 5ab5cca95e feat(login): add /login/supplier route for supplier portal 2026-04-02 09:51:53 +08:00
lewis_yan bd58c714ea feat(login): add supplierLogin API method for supplier portal 2026-04-02 09:51:24 +08:00
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