Skip to content

1#7887

Closed
zy1000 wants to merge 10 commits intomakeplane:previewfrom
zy1000:preview
Closed

1#7887
zy1000 wants to merge 10 commits intomakeplane:previewfrom
zy1000:preview

Conversation

@zy1000
Copy link

@zy1000 zy1000 commented Oct 1, 2025

Description

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • Feature (non-breaking change which adds functionality)
  • Improvement (change that would cause existing functionality to not work as expected)
  • Code refactoring
  • Performance improvements
  • Documentation update

Screenshots and Media (if applicable)

Test Scenarios

References


Note

Introduce a new project Overview UI (properties, description, activity, work-item stats), extend analytics and services, and add Docker/dev configs for local setup.

  • Frontend (web):
    • Project Overview: New route .../projects/[projectId]/overview/(list) with OverviewListView, header, and layout; includes ProjectDescriptionInput, ProjectProperties, ProjectActivity, and WorkItemStats.
    • Navigation & i18n: Add overview entry to project sidebar/breadcrumbs (EProjectFeatureKey.OVERVIEW) and translations (EN/zh-CN).
    • Services/Store: Add getProjectHistory and getProjectAnalyze APIs; store actions fetchProjectHistory (mocked) and fetchProjectAnalyze.
    • UX tweaks: Sidebar peek logic, date dropdown accepts undefined, minor UI/image adjustments, comments.
    • Types/Constants: Extend project types (overview_view, description_html, relaxed date types).
    • Build/Config: Next.js configs tolerate type/eslint in build and enable host/polling.
  • Backend (api):
    • Analytics: Add cancelled_work_items to work-item stats; minor method signature formatting.
    • Dev/Infra: Add apps/api/Dockerfile.django; introduce hardcoded local DB/Redis/MinIO creds, dotenv loading; local.py default SECRET_KEY.
  • Infra:
    • Add docker-compose-middleware.yml (Postgres, Redis, RabbitMQ, MinIO).
    • .gitignore additions for venv and misc files.

Written by Cursor Bugbot for commit 00a9dbb. This will update automatically on new commits. Configure here.

Summary by CodeRabbit

  • New Features

    • Introduced Project Overview page with description editor, activity feed, and work item stats.
    • Added “Overview” to project navigation.
    • Improved sidebar: hover-to-peek when collapsed and smoother resizing.
  • Style

    • Removed “Star us on GitHub” link from the project header.
  • Documentation

    • Added inline help texts and comments; no functional changes.
  • Chores

    • Enhanced dev setup: host binding, Docker/Compose services, and file watching in Docker.
    • Allowed builds to proceed despite lint/type errors.
    • Updated ignore rules and translations (EN/zh-CN) for “Overview.”

yuzheng3 and others added 10 commits September 19, 2025 10:08
- 新增本地开发环境配置,包括数据库、Redis和S3设置
- 优化Next.js开发服务器配置,支持0.0.0.0访问
- 改进侧边栏交互逻辑,修复折叠状态下的peek行为
- 添加模型注释和类型定义
- 移除GitHub星标按钮
- 增加并发构建数量
- 新增项目页面列表的布局组件和页面组件
- 在侧边栏导航中添加工作项入口
- 实现页面创建功能及相关权限控制
- 更新.gitignore文件排除开发环境文件
- 添加调试日志和注释说明
将页面列表相关组件重命名为概览列表组件,并更新相应的布局结构
移除旧的页面列表视图,新增概览列表视图组件
feat: 新增项目描述输入组件
feat: 添加项目活动记录组件
feat: 实现项目属性展示组件
feat: 新增工作项统计组件
refactor: 更新项目导航侧边栏
fix: 修复日期组件类型定义
chore: 更新next.js配置
docs: 添加中英文翻译字段
- 在项目功能枚举中添加OVERVIEW选项
- 新增概览页面导航项和侧边栏控制
- 实现概览页面的布局和交互功能
- 更新项目类型定义和主题存储以支持概览功能
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 1, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

Adds a Project Overview feature across web UI (new components, navigation, store/service methods, i18n/types), enhances sidebar resize/peek control, introduces project analytics/history fetching, and tweaks UI headers. DevOps updates include Dockerfile for Django API, middleware docker-compose, Next.js config changes, and binding dev servers to 0.0.0.0. Backend settings modified and analytics endpoints extended.

Changes

Cohort / File(s) Summary
DevOps & Config
apps/api/Dockerfile.django, docker-compose-middleware.yml, apps/web/next.config.js, apps/space/next.config.js, apps/admin/package.json, apps/space/package.json, apps/web/package.json, package.json, .gitignore
New Django API Dockerfile; adds middleware stack (Postgres, Redis, RabbitMQ, MinIO); Next.js build ignores ESLint/TS errors and adds Docker-friendly watch; dev/start scripts bind to 0.0.0.0; increase turbo concurrency; expand gitignore.
Backend Settings
apps/api/plane/settings/common.py, apps/api/plane/settings/local.py
Loads dotenv; hardcodes DB/Redis defaults and AWS creds; adds SECRET_KEY env-based default for local.
Backend Analytics & Models
apps/api/plane/app/views/analytic/project_analytics.py, apps/api/plane/db/models/workspace.py
Analytics endpoints add cancelled_work_items; extensive docstrings/help_text additions to workspace-related models.
Overview Feature – Pages/Layout
apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/overview/(list)/page.tsx, .../layout.tsx, .../header.tsx, .../OverviewList.tsx
Adds Overview page, layout, header, and list view components wired with routing, permissions, and UI composition.
Overview Feature – Components
apps/web/core/components/project/project-activity.tsx, .../project-description-input.tsx, .../project-properties.tsx, .../work-item-stats.tsx
New components for activity feed, rich description editor, editable properties panel, and work item stats visualization.
Navigation & Constants
apps/web/ce/components/projects/navigation/helper.tsx, apps/web/core/components/workspace/sidebar/project-navigation.tsx, packages/constants/src/project.ts, packages/i18n/src/locales/en/translations.json, packages/i18n/src/locales/zh-CN/translations.json, packages/types/src/project/projects.ts
Adds Overview nav item; extends feature key enum (OVERVIEW); adds i18n strings; updates project types with overview_view and description_html.
Store & Service
apps/web/core/services/project/project.service.ts, apps/web/core/store/project/project.store.ts, apps/web/core/store/theme.store.ts
Adds service methods getProjectHistory/getProjectAnalyze; store methods fetchProjectHistory/fetchProjectAnalyze (history mocked); theme store adds overviewPeek and toggler.
Sidebar Behavior
apps/web/core/components/sidebar/resizable-sidebar.tsx, apps/web/app/(all)/[workspaceSlug]/(projects)/_sidebar.tsx
Refactors resize/collapse/peek controlled props and hover behavior; adjusts disablePeekTrigger logic based on collapse state.
Minor UI Adjustments/Comments
apps/web/app/(all)/[workspaceSlug]/(projects)/header.tsx, .../(projects)/page.tsx, apps/web/ce/components/breadcrumbs/common.tsx, apps/web/core/components/project/card-list.tsx, apps/web/core/components/home/root.tsx, .../widgets/manage/widget-item.tsx, apps/web/core/components/workspace/sidebar/projects-list.tsx, apps/web/core/components/workspace/sidebar/sidebar-item.tsx, apps/web/core/components/dropdowns/date.tsx
Removes StarUsOnGitHubLink; adds comments/logging; minor image size attribute; allows undefined in DateDropdown value; assorted non-functional comments.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant User
  participant NextPage as Overview Page
  participant Store as ProjectStore
  participant Service as ProjectService
  participant API as API (Django)
  participant UI as Components

  User->>NextPage: Navigate /{workspace}/projects/{id}/overview
  NextPage->>Store: fetchProjectAnalyze(ws, id)
  Store->>Service: getProjectAnalyze(ws, id)
  Service->>API: GET /advance-analytics/
  API-->>Service: analytics JSON
  Service-->>Store: data
  Store-->>UI: WorkItemStats props

  NextPage->>Store: fetchProjectHistory(ws, id)
  Store-->>UI: history data (mock or API)

  NextPage->>UI: Render OverviewListView<br/>(Description, Properties, Activity, Stats)
  UI-->>User: Overview screen
Loading
sequenceDiagram
  autonumber
  participant User
  participant Sidebar as ResizableSidebar
  participant Theme as ThemeStore

  User->>Sidebar: Hover collapsed rail
  Sidebar->>Sidebar: handleTriggerEnter -> show peek
  Sidebar->>Theme: overviewSidebarPeek(true)
  User->>Sidebar: Move mouse away
  Sidebar->>Sidebar: handleTriggerLeave -> hide peek (with timeout)
  Sidebar->>Theme: overviewSidebarPeek(false)
  User->>Sidebar: Drag resize handle
  Sidebar->>Sidebar: startResizing / handleResize (delta, clamp)
  Sidebar-->>User: Updated width
  User->>Sidebar: Click collapse toggle
  Sidebar->>Sidebar: toggleCollapsed -> onCollapsedChange
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60–90 minutes

Possibly related PRs

Suggested labels

✨feature, 🌐frontend, 🛠️refactor

Suggested reviewers

  • aaryan610
  • prateekshourya29
  • sriramveeraghanta

Poem

Hop hop! I stitch a page anew,
An Overview brewed for projects’ view.
Sidebar peeks, then hides with grace,
Stats and stories take their place.
Docker hums, the dev winds blow—
I thump my paw: “Ship it, let’s go!” 🐇🚀

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 794271a and 00a9dbb.

📒 Files selected for processing (41)
  • .gitignore (1 hunks)
  • apps/admin/package.json (1 hunks)
  • apps/api/Dockerfile.django (1 hunks)
  • apps/api/plane/app/views/analytic/project_analytics.py (4 hunks)
  • apps/api/plane/db/models/workspace.py (12 hunks)
  • apps/api/plane/settings/common.py (4 hunks)
  • apps/api/plane/settings/local.py (1 hunks)
  • apps/space/next.config.js (1 hunks)
  • apps/space/package.json (1 hunks)
  • apps/web/app/(all)/[workspaceSlug]/(projects)/_sidebar.tsx (2 hunks)
  • apps/web/app/(all)/[workspaceSlug]/(projects)/header.tsx (1 hunks)
  • apps/web/app/(all)/[workspaceSlug]/(projects)/page.tsx (1 hunks)
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/overview/(list)/OverviewList.tsx (1 hunks)
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/overview/(list)/header.tsx (1 hunks)
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/overview/(list)/layout.tsx (1 hunks)
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/overview/(list)/page.tsx (1 hunks)
  • apps/web/ce/components/breadcrumbs/common.tsx (1 hunks)
  • apps/web/ce/components/projects/navigation/helper.tsx (2 hunks)
  • apps/web/core/components/dropdowns/date.tsx (1 hunks)
  • apps/web/core/components/home/root.tsx (2 hunks)
  • apps/web/core/components/home/widgets/manage/widget-item.tsx (2 hunks)
  • apps/web/core/components/project/card-list.tsx (2 hunks)
  • apps/web/core/components/project/project-activity.tsx (1 hunks)
  • apps/web/core/components/project/project-description-input.tsx (1 hunks)
  • apps/web/core/components/project/project-properties.tsx (1 hunks)
  • apps/web/core/components/project/work-item-stats.tsx (1 hunks)
  • apps/web/core/components/sidebar/resizable-sidebar.tsx (6 hunks)
  • apps/web/core/components/workspace/sidebar/project-navigation.tsx (2 hunks)
  • apps/web/core/components/workspace/sidebar/projects-list.tsx (2 hunks)
  • apps/web/core/components/workspace/sidebar/sidebar-item.tsx (1 hunks)
  • apps/web/core/services/project/project.service.ts (1 hunks)
  • apps/web/core/store/project/project.store.ts (3 hunks)
  • apps/web/core/store/theme.store.ts (6 hunks)
  • apps/web/next.config.js (1 hunks)
  • apps/web/package.json (1 hunks)
  • docker-compose-middleware.yml (1 hunks)
  • package.json (1 hunks)
  • packages/constants/src/project.ts (1 hunks)
  • packages/i18n/src/locales/en/translations.json (1 hunks)
  • packages/i18n/src/locales/zh-CN/translations.json (1 hunks)
  • packages/types/src/project/projects.ts (1 hunks)

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
0 out of 2 committers have signed the CLA.

❌ yuzheng3
❌ zy1000


yuzheng3 seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

@zy1000 zy1000 closed this Oct 1, 2025
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is being reviewed by Cursor Bugbot

Details

Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

"PORT": 5432,
}

}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Security Risk: Hardcoded Sensitive Configurations

Sensitive configuration for the database, Redis, and AWS is hardcoded in the settings file, replacing environment variable usage. This includes database credentials (user, password, host IP), Redis URL, and AWS access keys, creating a security vulnerability and preventing environment-specific deployments.

Fix in Cursor Fix in Web


# Redis Config
REDIS_URL = os.environ.get("REDIS_URL")
REDIS_URL = 'redis://10.32.190.226:6379/0'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Hardcoded Redis URL Exposes Infrastructure

The Redis URL redis://10.32.190.226:6379/0 is hardcoded directly in the settings. This exposes infrastructure details and makes the configuration non-portable, rather than using the REDIS_URL environment variable.

Fix in Cursor Fix in Web

pablohashescobar added a commit that referenced this pull request Oct 3, 2025
…7887)

- Added a new function `save_webhook_log` to log webhook requests and responses to MongoDB, with a fallback to the database if the MongoDB save fails.
- Updated the `webhook_send_task` to utilize the new logging function.
- Modified the `get_webhook_logs_queryset` to order logs by creation date and adjusted the chunk size for iteration.
sriramveeraghanta pushed a commit that referenced this pull request Oct 15, 2025
…o database (#7896)

* feat: implement webhook logging to MongoDB and fallback to database (#7887)

- Added a new function `save_webhook_log` to log webhook requests and responses to MongoDB, with a fallback to the database if the MongoDB save fails.
- Updated the `webhook_send_task` to utilize the new logging function.
- Modified the `get_webhook_logs_queryset` to order logs by creation date and adjusted the chunk size for iteration.

* refactor: clean up log data formatting in save_webhook_log function

* fix: update retry_count type in save_webhook_log function
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants