Skip to content

feat: adding portfolio taxonomies and field names#11

Merged
brandonmarshal merged 4 commits into
developfrom
feature/portfolio-fields-taxonomies
May 13, 2026
Merged

feat: adding portfolio taxonomies and field names#11
brandonmarshal merged 4 commits into
developfrom
feature/portfolio-fields-taxonomies

Conversation

@brandonmarshal

@brandonmarshal brandonmarshal commented May 11, 2026

Copy link
Copy Markdown
Collaborator

General Pull Request

Linked issues

Closes #

Changelog

Added

  • Added a new taxonomy definition for “Project types” in taxonomy-portfolio-project-type.json, enabling hierarchical categorization of portfolio items with REST API support and custom labels.
  • Added a new taxonomy definition for “Softwares” in taxonomy-portfolio-software.json, enabling hierarchical categorization of portfolio items by software used, with REST API support and custom labels.
  • Added a new text field ls_plugin_client_name labeled “Client Name” to group_ls_plugin_portfolio_fields.json for storing associated client names on portfolio items.

Risk Assessment

Risk Level: Low

Potential Impact:

  • Changes introduce additional taxonomy and field definitions for portfolio items.
  • Potential issues may include taxonomy registration conflicts, incorrect field rendering, or missing field data in the admin interface if configuration is misapplied.

Mitigation Steps:

  • Changes are isolated to taxonomy and field configuration JSON files.
  • Existing portfolio functionality remains unchanged.
  • Taxonomy definitions include REST API support and follow existing configuration patterns.
  • Field addition is additive and backward-compatible.

How to Test

Test Steps

  1. Verify Project Type taxonomy

    • Navigate to the portfolio item editor in WordPress.
    • Confirm a new “Project types” taxonomy is available.
    • Create parent and child project type terms.
    • Assign terms to a portfolio item and save successfully.
  2. Verify Software taxonomy

    • Confirm a new “Softwares” taxonomy is available in portfolio items.
    • Create and assign software terms to a portfolio item.
    • Verify hierarchical behavior works as expected.
  3. Verify Client Name field

    • Open a portfolio item in the admin editor.
    • Confirm the “Client Name” text field appears.
    • Save a value and verify it persists after reload.
  4. Verify REST API support

    • Query portfolio items and taxonomy endpoints through the WordPress REST API.
    • Confirm the new taxonomies are exposed correctly.

Expected Results

  • Both new taxonomies are visible and functional within portfolio items.
  • Hierarchical term assignment works correctly.
  • The “Client Name” field is displayed and saves successfully.
  • REST API responses include the new taxonomy data.

Edge Cases to Verify

  • Empty Client Name field saves without errors
  • Nested taxonomy terms function correctly
  • Existing portfolio items remain unaffected
  • REST API responses do not produce errors

Checklist (Global DoD / PR)

  • All AC met and demonstrated
  • Tests added/updated (unit/E2E as appropriate)
  • Docs/readme/changelog updated (if user-facing)
  • Code/design reviews approved
  • CI green; linked issues closed; release notes prepared (if shipping)
  • Risk assessment completed above
  • Testing instructions provided above

References

Summary by CodeRabbit

  • New Features
    • Added a "Client Name" text field to portfolio items for capturing client details.
    • Added a "Portfolio Project Type" taxonomy to categorize portfolio projects (hierarchical, REST-enabled).
    • Added a "Portfolio Software" taxonomy to tag portfolio items by associated software (hierarchical, REST-enabled)

Review Change Stack

@brandonmarshal brandonmarshal requested a review from krugazul May 11, 2026 19:07
@brandonmarshal brandonmarshal self-assigned this May 11, 2026
@brandonmarshal brandonmarshal added the status:ready Groomed and ready to start label May 11, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request adds a new 'Client Name' field to the portfolio field group and introduces two new taxonomies for 'Project types' and 'Software'. The review feedback highlights a critical issue where the query_var property in both new taxonomy definitions is set to a duplicate value, which will cause collisions in WordPress query resolution. Additionally, it is recommended to update the 'Softwares' taxonomy labels to use the more idiomatic term 'Software'.

Comment thread scf-json/taxonomy-portfolio-project-type.json Outdated
Comment thread scf-json/taxonomy-portfolio-software.json Outdated
Comment thread scf-json/taxonomy-portfolio-software.json Outdated
@coderabbitai

coderabbitai Bot commented May 11, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@krugazul has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 58 minutes and 7 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: 20c86369-8ef4-46b7-aac2-457479a18028

📥 Commits

Reviewing files that changed from the base of the PR and between 1c2862a and 581f3c5.

📒 Files selected for processing (2)
  • scf-json/taxonomy-portfolio-project-type.json
  • scf-json/taxonomy-portfolio-software.json

Note

.coderabbit.yml has unrecognized properties

CodeRabbit is using all valid settings from your configuration. Unrecognized properties (listed below) have been ignored and may indicate typos or deprecated fields that can be removed.

⚠️ Parsing warnings (1)
Validation error: Unrecognized key(s) in object: 'version', 'path_instructions'
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Walkthrough

This PR extends the portfolio post type with additional metadata and organizational structure. A new Client Name text field is added to the portfolio form group, and two new hierarchical taxonomies—Project Type and Software—are introduced to classify and organize portfolio items through the REST API and WordPress admin interface.

Changes

Portfolio Field and Taxonomy Configuration

Layer / File(s) Summary
Portfolio Client Name Field
scf-json/group_ls_plugin_portfolio_fields.json
Adds a new Client Name text input field (field_ls_plugin_client_name / ls_plugin_client_name) to the portfolio field group with wrapper settings, default values, placeholder text, bindings support, and input constraints.
Portfolio Project Type Taxonomy
scf-json/taxonomy-portfolio-project-type.json
Defines a new hierarchical taxonomy ls_plugin_portfolio_project_type attached to the portfolio object type, with full admin labels, capability mappings for term and post management, public visibility, REST exposure (base: portfolio-project-type), rewrite rules, and default term configuration.
Portfolio Software Taxonomy
scf-json/taxonomy-portfolio-software.json
Adds a new hierarchical taxonomy ls_plugin_portfolio_software with menu labels, capability-based access control, public/UI visibility, REST API registration (base: portfolio-software), hierarchical rewrite, admin column display, and default term behavior.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • lightspeedwp/ls-plugin#6: Introduced the initial portfolio field-group and taxonomy JSON structure that this PR extends with new fields and taxonomies.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: adding two portfolio taxonomies and one client name field configuration across three JSON files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/portfolio-fields-taxonomies

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
scf-json/taxonomy-portfolio-software.json (1)

3-3: ⚡ Quick win

Reconsider the term "Softwares" for better grammar.

"Software" is typically an uncountable noun in English, making "Softwares" grammatically incorrect. Consider using "Software" for both singular and plural contexts (common in WordPress taxonomies), or alternatives like "Software Tools" if plural distinction is needed.

📝 Example: Using "Software" consistently
-    "title": "Softwares",
+    "title": "Software",

This pattern would apply to all label properties in lines 11-34 where "Softwares" appears (e.g., "menu_name": "Software", "all_items": "All Software", etc.).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scf-json/taxonomy-portfolio-software.json` at line 3, The "title" value
currently uses the ungrammatical plural "Softwares"; update the JSON to use the
uncountable noun form "Software" (or an alternative like "Software Tools" if you
need a plural distinction) and mirror this change across all related label
properties where "Softwares" appears (e.g., "menu_name", "all_items", etc.) so
labels in the taxonomy object are consistent and grammatically correct.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@scf-json/taxonomy-portfolio-software.json`:
- Line 3: The "title" value currently uses the ungrammatical plural "Softwares";
update the JSON to use the uncountable noun form "Software" (or an alternative
like "Software Tools" if you need a plural distinction) and mirror this change
across all related label properties where "Softwares" appears (e.g.,
"menu_name", "all_items", etc.) so labels in the taxonomy object are consistent
and grammatically correct.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: da9991b6-1f81-4ada-8515-feca700da439

📥 Commits

Reviewing files that changed from the base of the PR and between bc5a056 and fa43e50.

📒 Files selected for processing (3)
  • scf-json/group_ls_plugin_portfolio_fields.json
  • scf-json/taxonomy-portfolio-project-type.json
  • scf-json/taxonomy-portfolio-software.json

brandonmarshal and others added 3 commits May 12, 2026 16:39
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Warwick Booth <krugazul@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Warwick Booth <krugazul@users.noreply.github.com>
@brandonmarshal brandonmarshal merged commit 3889f84 into develop May 13, 2026
1 check passed
@brandonmarshal brandonmarshal deleted the feature/portfolio-fields-taxonomies branch May 13, 2026 15:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status:ready Groomed and ready to start

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants