1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
# SPDX-License-Identifier: AGPL-3.0-or-later
"""
Forms for snapshot module.
"""
from django import forms
from django.utils.translation import gettext_lazy as _
class SnapshotForm(forms.Form):
free_space = forms.ChoiceField(
label=_('Free Disk Space to Maintain'),
help_text=_('Maintain this percentage of free space on the disk. '
'If free space falls below this value, older snapshots '
'are removed until this much free space is regained. The '
'default value is 30%.'),
choices=[(i / 100, '{}%'.format(i)) for i in range(10, 80, 10)])
enable_timeline_snapshots = forms.ChoiceField(
label=_('Timeline Snapshots'),
help_text=_('Enable or disable timeline snapshots '
'(hourly, daily, monthly and yearly).'),
choices=[('yes', _('Enabled')), ('no', _('Disabled'))])
enable_software_snapshots = forms.ChoiceField(
label=_('Software Installation Snapshots'),
help_text=_('Enable or disable snapshots before and after each '
'software installation and update.'),
choices=[('yes', _('Enabled')), ('no', _('Disabled'))])
hourly_limit = forms.IntegerField(
label=_('Hourly Snapshots Limit'), min_value=0,
help_text=_('Keep a maximum of this many hourly snapshots.'))
daily_limit = forms.IntegerField(
label=_('Daily Snapshots Limit'), min_value=0,
help_text=_('Keep a maximum of this many daily snapshots.'))
weekly_limit = forms.IntegerField(
label=_('Weekly Snapshots Limit'), min_value=0,
help_text=_('Keep a maximum of this many weekly snapshots.'))
monthly_limit = forms.IntegerField(
label=_('Monthly Snapshots Limit'), min_value=0,
help_text=_('Keep a maximum of this many monthly snapshots.'))
yearly_limit = forms.IntegerField(
label=_('Yearly Snapshots Limit'), min_value=0,
help_text=_('Keep a maximum of this many yearly snapshots. '
'The default value is 0 (keep no yearly snapshot).'))
|