moves logic from RelativeDateWrapper into RelativeDate and adds BaseChoice for configuring which models attributes support which relationship

This commit is contained in:
Lukas Bockstaller
2026-05-19 17:11:06 +02:00
parent f0d1d7ca5a
commit 21fc8e4dec
13 changed files with 363 additions and 258 deletions
+6 -6
View File
@@ -93,14 +93,14 @@ class SubEventBulkForm(SubEventForm):
label=_('Start of presale'),
help_text=_('Optional. No products will be sold before this date.'),
required=False,
limit_choices=('date_from', 'date_to'),
limit_choices=('event__date_from', 'event__date_to'),
)
rel_presale_end = RelativeDateTimeField(
label=_('End of presale'),
help_text=_('Optional. No products will be sold after this date. If you do not set this value, the presale '
'will end after the end date of your event.'),
required=False,
limit_choices=('date_from', 'date_to'),
limit_choices=('event__date_from', 'event__date_to'),
)
skip_if_overlap = forms.BooleanField(
label=pgettext_lazy('subevent', 'Skip dates that overlap with any existing date'),
@@ -332,12 +332,12 @@ class BulkSubEventItemForm(SubEventItemForm):
rel_available_from = RelativeDateTimeField(
label=_('Available from'),
required=False,
limit_choices=('date_from', 'date_to'),
limit_choices=('event__date_from', 'event__date_to'),
)
rel_available_until = RelativeDateTimeField(
label=_('Available until'),
required=False,
limit_choices=('date_from', 'date_to'),
limit_choices=('event__date_from', 'event__date_to'),
)
def __init__(self, *args, **kwargs):
@@ -354,12 +354,12 @@ class BulkSubEventItemVariationForm(SubEventItemVariationForm):
rel_available_from = RelativeDateTimeField(
label=_('Available from'),
required=False,
limit_choices=('date_from', 'date_to'),
limit_choices=('event__date_from', 'event__date_to'),
)
rel_available_until = RelativeDateTimeField(
label=_('Available_until'),
required=False,
limit_choices=('date_from', 'date_to'),
limit_choices=('event__date_from', 'event__date_to'),
)
def __init__(self, *args, **kwargs):
+1 -1
View File
@@ -424,7 +424,7 @@ class SubEventEditorMixin(MetaDataEditorMixin):
days = (self.copy_from.date_from.astimezone(tz).date() - value.astimezone(tz).date()).days
return RelativeDateWrapper(RelativeDate(
days=abs(days),
base_date_name='date_from',
base_date_name='event__date_from',
time=value.astimezone(tz).time(),
minutes=None,
is_after=days < 0,