diff --git a/lingo/pricing/forms.py b/lingo/pricing/forms.py index b8adbfd..fba7ebb 100644 --- a/lingo/pricing/forms.py +++ b/lingo/pricing/forms.py @@ -177,6 +177,16 @@ class AgendaPricingForm(NewAgendaPricingForm): return slug + def clean_subscription_required(self): + subscription_required = self.cleaned_data['subscription_required'] + if subscription_required is False and self.instance.subscription_required is True: + # value has changed, check linked agendas + if self.instance.agendas.exists(): + raise forms.ValidationError( + _('Some agendas are linked to this pricing; please unlink them first.') + ) + return subscription_required + class AgendaPricingAgendaAddForm(forms.Form): agenda = forms.ModelChoiceField(label=_('Agenda to add'), queryset=Agenda.objects.none(), required=True) diff --git a/lingo/pricing/templates/lingo/pricing/manager_agenda_pricing_detail.html b/lingo/pricing/templates/lingo/pricing/manager_agenda_pricing_detail.html index f6ba8ad..35bed3d 100644 --- a/lingo/pricing/templates/lingo/pricing/manager_agenda_pricing_detail.html +++ b/lingo/pricing/templates/lingo/pricing/manager_agenda_pricing_detail.html @@ -27,7 +27,9 @@
+ {% if object.subscription_required %} + {% endif %} {% for matrix in iter_matrix %} @@ -48,6 +50,7 @@
+ {% if object.subscription_required %}
+ {% endif %}