Skip to content

[18.0][ADD] sign_oca_reminder: reminders, resend, and expiration#150

Open
manana2520 wants to merge 1 commit intoOCA:18.0from
keboola:18.0-add-sign_oca_reminder
Open

[18.0][ADD] sign_oca_reminder: reminders, resend, and expiration#150
manana2520 wants to merge 1 commit intoOCA:18.0from
keboola:18.0-add-sign_oca_reminder

Conversation

@manana2520
Copy link

Summary

Adds DocuSign-like reminder, resend, and expiration functionality to sign_oca.

Features

  • Manual Resend: "Resend" button on sent sign requests to re-notify unsigned signers
  • Automatic Reminders: Daily cron sends periodic reminders at a configurable interval (default: 3 days)
  • Request Expiration: Optional validity date; requests past this date are automatically cancelled by the cron
  • Company Defaults: Configure default reminder settings in Settings > Sign OCA
  • Search Filters: "Expiring Soon" and "Expired" filters in the sign request list view
  • Post-init hook: Backfills sent_date for existing sent requests so reminders work immediately after install

Technical Details

  • Extends sign.oca.request with new fields: sent_date, reminder_enabled, reminder_interval_days, last_reminder_date, reminder_count, validity_date, next_reminder_date
  • Extends sign.oca.request.log with new actions: resend, expire, reminder
  • Extends res.company and res.config.settings for company-level defaults
  • Single daily cron handles both expiration and reminder logic
  • Depends only on sign_oca (no other dependencies)

Test Coverage

23 test cases covering:

  • Reminder sending and interval computation
  • Expiration and automatic cancellation
  • Cron behavior for both reminders and expiration
  • Computed fields (next_reminder_date, is_expired)
  • Edge cases (no signers, already signed, disabled reminders)
  • Manual resend functionality
  • Default values from company settings
  • Post-init hook backfill

Screenshots

The module adds reminder/expiration fields to the sign request form:

Sign Request Form

(Will add screenshots if requested by reviewers)

Migration Notes

  • No migration scripts needed - this is a new module
  • Post-init hook safely handles existing databases with sent requests

Add DocuSign-like reminder, resend, and expiration functionality
to OCA's sign_oca module.

Features:
- Manual "Resend" button to re-notify unsigned signers
- Automatic reminders via daily cron at configurable intervals
- Request expiration with automatic cancellation
- Company-level defaults in Settings > Sign OCA
- "Expiring Soon" and "Expired" search filters
- Post-init hook to backfill sent_date for existing requests

Tests: 23 test cases covering reminders, expiration, cron behavior,
computed fields, and edge cases.
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.

1 participant