Пример #1
0
class SimpleDonationForm(forms.Form):
    button_label = "Je donne !"

    amount = AskAmountField(
        label="Montant du don",
        max_value=settings.DONATION_MAXIMUM,
        min_value=settings.DONATION_MINIMUM,
        decimal_places=2,
        required=True,
        error_messages={
            "invalid": _("Indiquez le montant à donner."),
            "min_value": format_lazy(
                _("Il n'est pas possible de donner moins que {min} €."),
                min=settings.DONATION_MINIMUM,
            ),
            "max_value": format_lazy(
                _("Les dons de plus de {max} € ne peuvent être faits par carte bleue."),
                max=settings.DONATION_MAXIMUM,
            ),
        },
    )

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_class = "donation-form"
        self.helper.add_input(layout.Submit("valider", self.button_label))

        self.helper.layout = Layout()
Пример #2
0
class LoanForm(SimpleDonationForm):
    button_label = "Je prête !"

    amount = AskAmountField(
        label="Montant du prêt",
        max_value=settings.LOAN_MAXIMUM,
        min_value=settings.LOAN_MINIMUM,
        decimal_places=2,
        required=True,
        error_messages={
            "invalid":
            _("Indiquez le montant à prêter."),
            "min_value":
            format_lazy(
                _("Les prêts de moins de 400 € ne sont pas acceptés."),
                min=settings.LOAN_MINIMUM,
            ),
            "max_value":
            format_lazy(
                _("Les prêts de plus de {max} € ne peuvent être faits par carte bleue."
                  ),
                max=settings.LOAN_MAXIMUM,
            ),
        },
        amount_choices=[10000, 5000, 2000, 1000, 400],
        show_tax_credit=False,
    )
Пример #3
0
class AllocationSubscriptionForm(AllocationMixin, SimpleDonationForm):
    amount = AskAmountField(
        label="Montant du don mensuel",
        max_value=settings.MONTHLY_DONATION_MAXIMUM,
        min_value=settings.MONTHLY_DONATION_MINIMUM,
        required=True,
        error_messages={
            "invalid": _("Indiquez le montant de votre don mensuel."),
            "min_value": format_lazy(
                _("Les dons mensuels de moins de {min} ne sont pas acceptés."),
                min=display_price(settings.MONTHLY_DONATION_MINIMUM),
            ),
            "max_value": format_lazy(
                _("Les dons mensuels de plus de {max} ne sont pas acceptés."),
                max=display_price(settings.MONTHLY_DONATION_MAXIMUM),
            ),
        },
        by_month=True,
        show_tax_credit=True,
    )

    previous_subscription = forms.ModelChoiceField(
        queryset=Subscription.objects.filter(status=Subscription.STATUS_ACTIVE),
        required=False,
        widget=forms.HiddenInput,
    )

    def __init__(self, *args, user, **kwargs):
        super().__init__(*args, user=user, **kwargs)
        self.fields["amount"].amount_choices = [
            100 * 100,
            50 * 100,
            20 * 100,
            10 * 100,
            5 * 100,
        ]

        if user:
            self.fields["previous_subscription"].queryset = self.fields[
                "previous_subscription"
            ].queryset.filter(person=user.person)

        self.helper.layout.fields.append("previous_subscription")

    def get_button_label(self):
        if self.get_initial_for_field(
            self.fields["previous_subscription"], "previous_subscription"
        ):
            return "Modifier ce don mensuel"
        return "Mettre en place le don mensuel"
Пример #4
0
    def __init__(self, *args, campagne=None, **kwargs):
        super().__init__(*args, **kwargs)

        fields = [
            "label",
            "error_messages",
            "required",
            "amount_choices",
            "show_tax_credit",
        ]

        self.fields["amount"] = AskAmountField(
            min_value=campagne.get("min_value", settings.LOAN_MINIMUM),
            max_value=campagne.get("max_value", settings.LOAN_MAXIMUM),
            **{f: getattr(self.fields["amount"], f)
               for f in fields},
        )
Пример #5
0
class LoanForm(SimpleDonationForm):
    button_label = "Je prête !"

    amount = AskAmountField(
        label="Montant du prêt",
        max_value=settings.LOAN_MAXIMUM,
        min_value=settings.LOAN_MINIMUM,
        required=True,
        error_messages={
            "invalid":
            _("Indiquez le montant à prêter."),
            "min_value":
            format_lazy(
                _("Les prêts de moins de {min} ne sont pas acceptés."),
                min=display_price(settings.LOAN_MINIMUM),
            ),
            "max_value":
            format_lazy(
                _("Les prêts de plus de {max} ne peuvent être faits par carte bleue."
                  ),
                max=display_price(settings.LOAN_MAXIMUM),
            ),
        },
        amount_choices=[
            10000 * 100, 5000 * 100, 2000 * 100, 1000 * 100, 400 * 100
        ],
        show_tax_credit=False,
    )

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_class = "donation-form"
        self.helper.add_input(layout.Submit("valider", self.button_label))

        self.helper.layout = Layout()