Skip to content

526 contrasting confirmation messages#571

Open
Kafui123 wants to merge 15 commits intodevelopmentfrom
526Contrasting_Confirmation_Messages
Open

526 contrasting confirmation messages#571
Kafui123 wants to merge 15 commits intodevelopmentfrom
526Contrasting_Confirmation_Messages

Conversation

@Kafui123
Copy link
Copy Markdown

@Kafui123 Kafui123 commented Apr 2, 2026

Fixes issue #526

Changes:

  • Fixed the issue where an error message was shown, but a successful flash confirmation still appeared afterward. Now the feedback is consistent... no mixed signals for the user.
  • Adjusted the logic so that success and failure states are clearly separated and reported correctly, instead of overlapping or triggering both paths.
  • Addressed the case where email sending could fail, but the form would still be created, which previously caused a misleading failure message even though the form existed.
  • Ensured that form creation and email sending happen within a single transaction block.

Testing:

  • Click on administration and then manage terms.
  • Select a valid term under any academic year.
  • Create a new labor status form and then click submit
  • If everything succeeded, no flash error message would appear
  • If the form got created, but no email was sent, the form would not get created.
Screenshot 2026-04-02 145031 Screenshot 2026-04-02 145042

@Kafui123 Kafui123 requested a review from Arohasina April 2, 2026 18:54
@JohnCox2211 JohnCox2211 self-requested a review April 9, 2026 18:11
Copy link
Copy Markdown

@bakobagassas bakobagassas left a comment

Choose a reason for hiding this comment

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

Why are we changing 6 test files ? I don't think most of those changes are necessary

@Kafui123
Copy link
Copy Markdown
Author

Why are we changing 6 test files ? I don't think most of those changes are necessary

I had to make those changes because they(the test files) were failing as a result of the new changes I added.

Comment thread app/logic/emailHandler.py Outdated
Comment thread app/static/js/laborStatusForm.js
Comment thread tests/code/test_adminManagement.py Outdated
Comment thread tests/code/test_adminManagement.py Outdated
Comment thread tests/code/test_adminManagement.py Outdated
Comment thread app/static/js/laborStatusForm.js
@Arohasina
Copy link
Copy Markdown
Contributor

Your tests now handle success cases, but could you consider adding an integration test for partial/full submission failure scenarios after you have added the fixes mentioned above?

Comment thread app/logic/statusFormFunctions.py
@Kafui123
Copy link
Copy Markdown
Author

Your tests now handle success cases, but could you consider adding an integration test for partial/full submission failure scenarios after you have added the fixes mentioned above?

Your tests now handle success cases, but could you consider adding an integration test for partial/full submission failure scenarios after you have added the fixes mentioned above?

Your tests now handle success cases, but could you consider adding an integration test for partial/full submission failure scenarios after you have added the fixes mentioned above?

Since the main change in this pr was to put everything inside a mainDB.atomic block so that a form would not get submitted if email sending fails i do not think that it would be necessary testing the mainDB.atomic() block since that is peewee's behavior.

Copy link
Copy Markdown
Contributor

@Arohasina Arohasina left a comment

Choose a reason for hiding this comment

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

looks good !

@Kafui123 Kafui123 requested a review from MImran2002 May 1, 2026 16:30
formHistory = FormHistory.create( formID = lsf.laborStatusFormID,
historyType = "Labor Status Form",
overloadForm = None,
createdBy = creatorID,
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.

shouldn't the email.laborStatusFormSubmitted be here?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Yes, the call is intentionally handled later in the flow. For overload forms, the email is triggered earlier on line 81 via email.LaborOverloadFormSubmitted(link) and for regular status forms, the emaila gets sent on line 91 after the FormHistory record is created.

Comment thread app/models/__init__.py
@@ -1,8 +1,9 @@
from app import app
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.

Can I know the rationale for this as working on init.py file affect most of the backend

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

I added these lines to resolve a circular import issue where other files depended on the db instance from this file. At the time, those modules were being imported before the database had been properly initialized, which led to errors when accessing db. Importing the Flask app and initializing db with it ensured that the database instance was available when those modules were loaded.

@Kafui123 Kafui123 requested a review from MImran2002 May 5, 2026 19:20
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.

4 participants