Skip to content

Conversation

@ArnavBallinCode
Copy link
Contributor

  • Add PENDING_INVOICE status to SponsorshipProgressStatus
  • Create SponsorshipProfileDetail view for individual profile display
  • Add send-invoice functionality that updates status and emails PSF
  • Add email template for PSF accounting notifications
  • Update sponsorship table to include Send Invoice action button
  • Configure URLs for new detail and send-invoice endpoints
  • Update linting configuration to exclude .venv directory

Closes #170

- Add PENDING_INVOICE status to SponsorshipProgressStatus
- Create SponsorshipProfileDetail view for individual profile display
- Add send-invoice functionality that updates status and emails PSF
- Add email template for PSF accounting notifications
- Update sponsorship table to include Send Invoice action button
- Configure URLs for new detail and send-invoice endpoints
- Update linting configuration to exclude .venv directory

Closes pyladies#170
@netlify
Copy link

netlify bot commented Nov 1, 2025

Deploy Preview for pyladiescon-portal-docs ready!

Name Link
🔨 Latest commit d5d2914
🔍 Latest deploy log https://app.netlify.com/projects/pyladiescon-portal-docs/deploys/690981e0b06aa20008ce6a9d
😎 Deploy Preview https://deploy-preview-241--pyladiescon-portal-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

- Add tests for send_psf_invoice_request_email function
- Add tests for send_sponsorship_status_emails (pre-existing function)
- Add tests for SponsorshipProfileDetail view
- Add tests for SponsorshipProfileSendInvoice view
- Verify email sending, status updates, and permission checks
- Achieve 100% test coverage for sponsorship module
…tests

Replace undefined LANGUAGES import from volunteer.models with volunteer.languages
Keep VolunteerProfile imported from volunteer.models
Fixes flake8 F821 error and lint failures
@Mariatta
Copy link
Member

Mariatta commented Nov 2, 2025

One thing came to mind, and this can be done as a separate follow up ticket:

  • When switching the status into the "Approved" state, the company address, contact name and email should become required.
    Don't know how complicated this is to implement. I think the field in the database level should remain optional, it's just the form entry that needs to validate that these values exists.
    This is because these fields are required before the contract and invoice can be generated. If this sounds a lot, we can skip it for now and iterate on it later.

@Mariatta
Copy link
Member

Mariatta commented Nov 2, 2025

  • When switching the status into the "Approved" state, the company address, contact name and email should become required.

I've thought about this some more, and let's not bother with this requirement in this PR. For now we can assume that our sponsorship team will be entering these information correctly prior to clicking the send invoice button.

- Remove PENDING_INVOICE status as suggested (use APPROVED instead)
- Convert email template to markdown format for HTML rendering
- Add all required fields to PSF email (Company Address, Contact details)
- Remove status update sentence from email template
- Update send_invoice view to not change sponsorship status
- Fix all references to PENDING_INVOICE in views and tests
- Update email sending to use send_markdown_email helper
…update PSF email recipients test; apply formatting
Copy link
Member

@Mariatta Mariatta 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. Thanks!

@Mariatta Mariatta self-assigned this Nov 4, 2025
@Mariatta Mariatta merged commit 5e02780 into pyladies:main Nov 4, 2025
6 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.

Ability to send email to PSF accounting team, asking them to prepare sponsorship contract

2 participants