medor
clone your own copy | download snapshot

Snapshots | iceberg

Inside this repository

views.py
text/x-python

Download raw (3.2 KB)

# -*- coding: utf-8 -*-
from subscribe.forms import CooperationForm, SubscriptionForm, ConfirmForm
from django.core.mail import send_mail
from django.views.generic.edit import FormView
from django.template.loader import render_to_string

from django.shortcuts import render
from django.contrib.formtools.wizard.views import CookieWizardView


COOPERATION_FORMS = [
    CooperationForm,
    ConfirmForm,
]

COOPERATION_TEMPLATES = [
    "subscribe/cooperation-registration.html",
    "subscribe/cooperation-confirmation.html",
]


SUBSCRIPTION_FORMS = [
    SubscriptionForm,
    ConfirmForm,
]

SUBSCRIPTION_TEMPLATES = [
    "subscribe/subscription-registration.html",
    "subscribe/subscription-confirmation.html",
]


class CooperationWizardView(CookieWizardView):
    form_list = COOPERATION_FORMS

    def get_context_data(self, form, **kwargs):
        context = super(CooperationWizardView, self).get_context_data(form=form, **kwargs)
        if self.steps.current == '1':
            context.update({
                'infos': self.get_cleaned_data_for_step("0"),
                'total': self.get_cleaned_data_for_step("0")['share_number'] * 20
            })
        return context

    def get_template_names(self):
        return [COOPERATION_TEMPLATES[int(self.steps.current)]]

    def done(self, form_list, form_dict, **kwargs):
        form_list[0].save()

        subject = "Médor SCRL FS. Détails de votre paiement"
        message = render_to_string('subscribe/cooperation-email.txt', {
                'data': form_list[0].cleaned_data,
                'amount': form_list[0].cleaned_data['share_number'] * 20,
                'communication': form_list[0].instance.communication()
            })
        sender = "medor@medor.coop"

        recipients = ['alexandre@stdin.fr']

        send_mail(subject, message, sender, recipients)

        return render(self.request, 'subscribe/cooperation-done.html', {
            'communication': form_list[0].instance.communication(),
            'form_data': [form.cleaned_data for form in form_list],
        })


class SubscriptionWizardView(CookieWizardView):
    form_list = SUBSCRIPTION_FORMS

    def get_context_data(self, form, **kwargs):
        context = super(SubscriptionWizardView, self).get_context_data(form=form, **kwargs)
        if self.steps.current == '1':
            context.update({
                'infos': self.get_cleaned_data_for_step("0"),
            })
        return context

    def get_template_names(self):
        return [SUBSCRIPTION_TEMPLATES[int(self.steps.current)]]

    def done(self, form_list, form_dict, **kwargs):
        form_list[0].save()

        subject = "Médor SCRL FS. Détails de votre paiement"
        message = render_to_string('subscribe/cooperation-email.txt', {
                'data': form_list[0].cleaned_data,
                'amount': 60,
                'communication': form_list[0].instance.communication()
            })
        sender = "medor@medor.coop"

        recipients = ['alexandre@stdin.fr']

        send_mail(subject, message, sender, recipients)

        return render(self.request, 'subscribe/cooperation-done.html', {
            'communication': form_list[0].instance.communication(),
            'form_data': [form.cleaned_data for form in form_list],
        })