hamaka / userforms-cleanupsubmissions
Cleanup user submitted data in Silverstripe Userforms
Installs: 3 457
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 3
Forks: 1
Open Issues: 0
Type:silverstripe-vendormodule
pkg:composer/hamaka/userforms-cleanupsubmissions
Requires
- php: ^8.1
- silverstripe/userforms: ^6
README
Simple task to automatically cleanup userdata
Installation
To install run composer require hamaka/userforms-cleanupsubmissions
.
Requirements
- Silverstripe ^5.0
- UserForms ^6
Note: For Silverstripe 3, please use the 3.x release line, for Silverstripe 4, please use the 4.x release line.
Features
- Per-form retention policies: Set individual retention periods for each UserDefinedForm
- Elemental support: Configure retention policies for both UserDefinedForm and Elemental UserForm elements
- Flexible retention options: Choose from predefined periods (1 day to 6 months) or set to "Never delete"
- i18n support: Built-in translations for English and Dutch
- Configurable options: Override retention options per project
Configuration
Global retention period (fallback)
By default, the module will clean up entries older than 31 days. You can change this fallback via yml:
Hamaka\Tasks\UserFormsCleanupOldEntriesTask: days_retention: 90
This is used as a fallback for submissions that have no associated form retention policy.
Per-form retention policies (recommended)
Since version 5.1, you can set individual retention policies per form. This is the recommended approach.
For UserDefinedForm
Edit any UserDefinedForm in the CMS and navigate to the Settings tab. You'll find a Submission Retention Policy dropdown where you can select:
- 1 day
- 2 days
- 1 week
- 2 weeks
- 1 month
- 2 months
- 6 months
- Never delete (default)
For Elemental UserForm elements
The same retention policy field is available when editing Elemental UserForm elements.
Customizing retention options
You can customize the available retention options in your project's _config.yml
:
Hamaka\UserForms\Model\UserFormRetentionExtension: # Override this in your project's _config.yml to customize retention_options: 1: '1 day' 2: '2 days' 7: '1 week' 14: '2 weeks' 31: '1 month' 62: '2 months' 182: '6 months' 0: 'Never delete'
Running the cleanup task
The cleanup task can be run manually via the command line:
sake dev/tasks/userforms-cleanup
Or you can set it up to run automatically via a cron job:
*/1 * * * * cd /path/to/project && sake dev/tasks/userforms-cleanup
Translations
The module includes built-in translations for:
- English (en)
- Dutch (nl)
To add additional translations, create language files in your project and override the translation keys.