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