[fa] refactor: centralise CSV cell sanitisation and remap local ports#8724
[fa] refactor: centralise CSV cell sanitisation and remap local ports#8724dadenegarco wants to merge 21 commits intomakeplane:previewfrom
Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix gantt chart day numbers to show Jalali values in Shamsi mode (IDayBlock.dayNumber, IWeekBlock.startDayNumber/endDayNumber) - Fix calendar view (month/week) to be fully Jalali-aware: store lookup uses Jalali year/month keys, day tiles show Jalali day numbers, header/navigation uses jalali month arithmetic - Decouple calendar system from UI language: Jalali + English UI now shows English month names (Farvardin, not فروردین) - Switch ShamsiCalendar date picker to persian_en locale - Add docs/fa/README.md with full feature documentation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fa/chore/add rules and tracker
The ShamsiCalendar component was still using persian_fa locale which showed Farsi month names (فروردین) in the date picker. Switched to persian_en locale so Jalali calendar displays English month names (Farvardin) regardless of calendar system setting. Calendar system ≠ UI language: Jalali mode should use English text when the panel language is English. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Change editor container from pl-3 (padding-left only) to px-3 (symmetric padding) so RTL text has equal spacing from the right edge as LTR text has from the left edge - Convert physical CSS properties to logical properties in drag-drop.css (margin-left → margin-inline-start, left → inset-inline-start) - Convert fake cursor border properties to logical (border-left → border-inline-start, margin-right → margin-inline-end) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…greeting dates - Add Yekan Bakh variable font across all apps (web, admin, space) with @font-face declarations, preload links, and font stack integration - Add tiptap-text-direction extension for automatic RTL/LTR detection in rich text editor (paragraphs and headings) - Convert physical CSS properties to logical equivalents in editor, title-editor, and table styles for proper RTL support - Add dir="auto" to base Input and TextArea components for automatic bidi text direction in all form fields - Wrap issue titles with <bdi> in list, kanban, and spreadsheet layouts to isolate RTL text from surrounding LTR layout - Use Intl.DateTimeFormat with en-US-u-ca-persian for Jalali calendar dates in English on home greeting components Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
[fa] feat: Persian font, BiDi support, and RTL fixes
- Build all 6 Docker images in parallel (web, admin, space, live, api, proxy) - Push to GitHub Container Registry (ghcr.io/dadenegarco/plane-fa/*) - Auto-deploy to production server via SSH on push to develop - Production docker-compose uses custom fork images instead of stock Plane Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ci: add GitHub Actions deploy pipeline with GHCR
- Add CSV import wizard with column/status/assignee mapping (API + frontend) - Add ImportJob model, background task, and fuzzy matching utilities - Add deploy workflow (GitHub Actions → GHCR → server) and production docker-compose - Update tooltip component, project settings, and translation keys - Add editor package dependency update Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
[fa] feat: add CSV importer, CI/CD pipeline, and UI improvements
- Space app: wire up setSpaceCalendarSystem in InstanceProvider so Jalali users see correct dates in public Space view (was always Gregorian) - Space app: add English locale to jalaliFormatEN so month names render in English (e.g., "Farvardin" not "فروردین") - CalendarStore: call setCalendarSystem before regenerateCalendar in MobX reaction to fix race condition where calendar could regenerate with the wrong calendar system when user switches preference - UserGreetingsView: use useCalendarSystem() hook instead of getCalendarSystem() so the greeting date updates immediately when user switches calendar system (was delayed up to ~1 minute) - packages/utils: move jalaliFormatEN/jalaliFDTNEN to module level with English locale, use them in setCalendarSystem Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… import mapping Case-insensitive dedup prevents duplicate entries when the same name appears with different casing/whitespace in the CSV. Workspace members and pending invites are now shown in the assignee mapping dropdown, with auto-add to project during import. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add LLM_BASE_URL support so users can point AI features to custom OpenAI-compatible endpoints (Azure, OpenRouter, local proxies, etc.) via GOD MODE settings or environment variables. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…mport CSV/XLSX files from tools like ClickUp store multiple assignees in bracket notation [name1, name2]. The comma split was creating duplicate entries like [name, name], and [name] for the same person. Strip [] before splitting. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… pending invite selection Migrate all import wizard components from deprecated custom-* tokens and raw Tailwind typography to the project's semantic design system (text-primary, bg-layer-*, border-subtle, text-body-sm-medium, etc.). Replace native <select> elements with CustomSearchSelect, Avatar, and Badge components. Make pending workspace invites selectable in assignee mapping with invite:<email> prefix pattern resolved by email lookup in the backend import task. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…e support Replace non-existent CSS variable names (--color-text-primary, --color-bg-surface-2, etc.) with the actual project theme variables (--txt-primary, --bg-surface-2, etc.) that are redefined under @variant dark and adapt automatically to all themes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…er and remap local ports Extract a reusable _clean_cell() function that strips whitespace, brackets, and null-like strings from imported CSV/XLSX values, replacing scattered .strip() / conditional checks across the import task. Remap Redis and MinIO host ports in docker-compose-local.yml to avoid conflicts with other local services. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Tip Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs). Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
I have rebased your branch to preview branch. Can you resolve conflicts in this PR. |
Summary
_clean_cell()helper inimport_task.pythat strips whitespace, brackets ([],{}), and null-like strings (null,none,n/a, etc.) from imported CSV/XLSX cell values.strip()calls and nested conditionals across all column handlers with the centralised helper6379→6380) and MinIO (9000→9004,9090→9091) host ports indocker-compose-local.ymlto avoid conflicts with other local servicesTest plan
null,N/A,—) and verify they are treated as empty[value],{value}) and confirm brackets are strippeddocker compose -f docker-compose-local.yml upand verify services start on the new ports🤖 Generated with Claude Code