Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Validate for Duplicate Event Entries within Multiple Offering Modal #1327

Merged
merged 25 commits into from
Sep 18, 2024

Conversation

hoerstl
Copy link
Contributor

@hoerstl hoerstl commented Aug 28, 2024

Issue Description

There is no form validation preventing a user from creating multiple of the same event using the multiple offerings modal. Currently, when they try, the form submits and returns a warning that the "event already exists" because it is a duplicate event. This is not intended behavior and the user should be warned beforehand.

Fixes issue #1306

Changes

  • Added form validation which ensures that multiple offerings of events cannot be saved if their name, date, and start times are all the same (at least one must be different)
  • Highlights similar events in red if you try to save with duplicate events
  • Refactored previous form validation code for readability

Dev Note: After careful consideration, we determined that we should prevent a user from creating two offerings of an event if they had the same name, date, start time, even when they have different end times. We cannot think of a situation when two events wouldn't be the same even with different end times.

Testing

First, prepare your local development environment and run the application
Preparation:

  • source setup.sh
  • database/reset_database.sh test
  • flask run

Now, you should create an event under any program and click the slider to give the event multiple offerings.
image
In the modal, do your best to create duplicate events and save the event page. If you cannot create multiple offerings so that when you save the event, you get a warning message saying that the "event already exists", then our PR is working.
Try creating two events that have the same fields but differ once in each of the following areas per test:
All fields same except event name
All fields same except event date
All fields same except start time

e.x.
image

@hoerstl
Copy link
Contributor Author

hoerstl commented Sep 4, 2024

@hoerstl hoerstl marked this pull request as ready for review September 4, 2024 19:40
@bledsoef bledsoef self-requested a review September 6, 2024 17:40
Copy link
Contributor

@bledsoef bledsoef left a comment

Choose a reason for hiding this comment

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

Great work altogether! The only issue is an edge case where we get an error when trying to create an event in the multiple event offerings modal when one already exists in the database. It should probably prevent you from creating it in the first place. @stevensonmichel speak more with Lawrence about this he understands how it works.

app/logic/events.py Outdated Show resolved Hide resolved
@hoerstl
Copy link
Contributor Author

hoerstl commented Sep 16, 2024

1 similar comment
@hoerstl
Copy link
Contributor Author

hoerstl commented Sep 16, 2024

@hoerstl hoerstl linked an issue Sep 16, 2024 that may be closed by this pull request
@hoerstl
Copy link
Contributor Author

hoerstl commented Sep 16, 2024

We have made all the suggested changes and we're ready for a re-review of our PR

Copy link
Contributor

@bledsoef bledsoef left a comment

Choose a reason for hiding this comment

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

Looks great to me, nice work guys!

Copy link

View Code Coverage

@bledsoef bledsoef merged commit 2167c9d into development Sep 18, 2024
5 checks passed
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.

Error saving single events when start date is not specified
3 participants