Skip to content

T2856 inconsistent logic for duplicate donations in cart & missing aggregation#254

Open
Shayan105 wants to merge 9 commits into14.0from
T2856-Inconsistent-Logic-for-Duplicate-Donations-in-Cart-&-Missing-Aggregation
Open

T2856 inconsistent logic for duplicate donations in cart & missing aggregation#254
Shayan105 wants to merge 9 commits into14.0from
T2856-Inconsistent-Logic-for-Duplicate-Donations-in-Cart-&-Missing-Aggregation

Conversation

@Shayan105
Copy link
Member

@Shayan105 Shayan105 commented Jan 23, 2026

Summary

Note: In the the Task description @ecino chose the option A.

This PR Fixes the following problems :

Issues

  1. When a user takes multiple time the same product (and potentially to the same child), a new line in the cart was created.
  2. Once a user added a product in the cart, they cannot longer see it in the gift/fund proposition

Fixes

  1. The 1st issue is solved by aggregating the amount of the product.
  2. For the 2nd just remove a filter.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @Shayan105, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request refines the donation cart functionality and product display. It introduces aggregation for identical donations, preventing multiple cart lines for the same item and recipient, and resolves an issue where products already added to the cart were hidden from the gift/fund proposition page, thereby enhancing the user's ability to manage and select donations.

Highlights

  • Cart Aggregation Logic: Implemented logic in the donation_new method to aggregate the amount of duplicate donations for the same product and recipient into a single cart line, rather than creating new lines.
  • Gift/Fund Proposition Visibility: Removed a filter in my2_render_add_a_gift_page that previously prevented products already in the cart from being displayed in the gift/fund proposition list, ensuring all options are visible.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

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

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 correctly addresses the aggregation of duplicate donations in the cart and ensures products remain visible in the gift/fund list after being added to the cart. The implementation is mostly sound, but I've identified a critical issue where donations with different frequencies (e.g., one-time vs. monthly) could be incorrectly merged. I've provided a fix for this. Additionally, I've included a couple of suggestions to enhance code readability and performance.

@Shayan105
Copy link
Member Author

/gemini review

Copy link
Contributor

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

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 aims to fix two issues: aggregating duplicate donations in the cart and ensuring products remain visible after being added. The implementation for aggregating donations is a good step forward, and removing the product filter is the correct approach given the new aggregation logic. However, my review has identified a critical issue in the aggregation logic that could lead to incorrect behavior by merging one-time and monthly donations. I've also found a performance issue where database operations are performed inside a loop, and I've provided a more efficient alternative. Lastly, there's a minor suggestion to improve code readability. Addressing these points will make the solution robust and performant.

Shayan105 and others added 3 commits January 23, 2026 10:12
…oduct

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…licate-Donations-in-Cart-&-Missing-Aggregation' into T2856-Inconsistent-Logic-for-Duplicate-Donations-in-Cart-&-Missing-Aggregation
@ecino ecino changed the base branch from 14.0-MyCompassion2.0 to 14.0 February 5, 2026 10:26
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