Created
May 9, 2010 14:46
-
-
Save fritzvd/395198 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from django.db import models | |
from django.contrib import admin | |
from django.contrib.admin import widgets | |
from django.forms import ModelForm | |
from django import forms | |
import datetime | |
TITLE_CHOICES = ( | |
('Dhr', 'Dhr.'), | |
('Mw', 'Mw.'), | |
) | |
SUBJECT_CHOICES = ( | |
('Extra info', 'Extra informatie aanvragen'), | |
('Vrijblijvende Offerte', 'Vrijblijvend een Offerte aanvragen'), | |
('Direct boeken', 'Direct een boeking doen'), | |
('Iets anders', 'Iets anders...'), | |
) | |
TYPETJE_CHOICES = ( | |
('Butler', 'Typetje Butler'), | |
('Sjoelkampioen', 'Typetje Sjoelkampioen'), | |
('Beveliger', 'Typetje Beveiliger'), | |
('Boswachter', 'Typetje Boswachter'), | |
('Nerd', 'Typetje Nerd'), | |
('Modefotograaf', 'Typetje Modefotograaf'), | |
('Op-maat', 'Typetje Op-Maat'), | |
('Overig', 'Overig entertainment') | |
) | |
class Offerte(models.Model): | |
"""Offerte aanvraag""" | |
onderwerp = models.CharField(max_length=21, choices=SUBJECT_CHOICES) | |
datum_feest_of_evenement = models.DateField(blank=True) | |
datum_is_nog_niet_bekend = models.BooleanField() | |
omschrijving_feest_of_evenement = models.CharField(max_length=300, blank=True, null=True) | |
schatting_van_het_aantal_gasten = models.IntegerField(blank=True, null=True) | |
locatie = models.CharField(max_length=200, blank=False) | |
welk_typetje_wilt_u = models.CharField(choices=TYPETJE_CHOICES) | |
aantal_acteurs = models.SmallIntegerField() | |
titel = models.CharField(max_length=3, choices=TITLE_CHOICES) | |
naam = models.CharField(blank=False, max_length=100) | |
email_adres = models.EmailField(blank=False, max_length=160) | |
telefoonnummer = models.IntegerField(blank=True, max_length=12) | |
mijzelf_toesturen = models.BooleanField() | |
class Admin: | |
list_display = ('',) | |
search_fields = ('',) | |
def __unicode__(self): | |
return u"Offerte" | |
class OfferteForm(ModelForm): | |
class Meta: | |
model = Offerte | |
welk_typetje_wilt_u = forms.MultipleChoiceField(choices=TYPETJE_CHOICES, widget=forms.CheckboxSelectMultiple()) | |
def __init__(self, *args, **kwargs): | |
super(ModelForm, self).__init__(*args, **kwargs) | |
self.fields['datum_feest_of_evenement'].widget = widgets.AdminDateWidget() | |
*** views.py | |
from django.shortcuts import render_to_response | |
from django.template.loader import render_to_string | |
from models import Offerte, OfferteForm | |
from django.views.decorators.csrf import csrf_protect | |
from django.template import RequestContext | |
from django.http import HttpResponseRedirect, HttpResponse | |
import pprint | |
@csrf_protect | |
def offerte_view(request): | |
if request.POST: | |
form = OfferteForm(request.POST) | |
if form.is_valid(): | |
cd = form.cleaned_data | |
offerte = cd.values() | |
offerte.sort() | |
recipients = ['[email protected]'] | |
if cd['mijzelf_toesturen']: | |
recipients.append(cd['email_adres']) | |
from django.core.mail import send_mail, EmailMessage | |
msg = EmailMessage("Toptypetjes Offerte:" + cd['onderwerp'], render_to_string('offerte/email.txt', { | |
'data': form.cleaned_data, | |
}), cd['email_adres'], recipients) | |
msg.content_subtype = "html" | |
msg.send() | |
return HttpResponseRedirect('/offerte/thanks/') | |
else: | |
form = OfferteForm() | |
return render_to_response('offerte/offerte.html', locals(), | |
context_instance=RequestContext(request)) | |
def thanks(request): | |
return HttpResponse("Bedankt voor je offerte/boeking.") | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment