Skip to content

Instantly share code, notes, and snippets.

@fritzvd
Created May 9, 2010 14:46
Show Gist options
  • Save fritzvd/395198 to your computer and use it in GitHub Desktop.
Save fritzvd/395198 to your computer and use it in GitHub Desktop.
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 = ['technokratnl@gmail.com']
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