def view_slate(request, slate_id): slate = Slate.objects.get(id=slate_id) invites = Invitee.objects.filter(slate = slate_id) try: slate.users.get(id = request.user.id) except User.DoesNotExist: return redirect("slate") if request.method == 'POST': if 'submit_idea' in request.POST: idea = helpers.add_idea(request, slate_id=slate.id) if 'submit_idea_elaborate' in request.POST: idea = helpers.add_idea(request, slate_id=slate.id) if idea: return HttpResponseRedirect(reverse('edit-idea', args=[idea.id])) if 'invite' in request.POST: inviteForm = InviteForm(request.POST) if inviteForm.is_valid(): clean = inviteForm.cleaned_data invites = clean['invite_list'].split(',') participants = slate.users.count() if len(invites) > (6 - participants): messages.error(request, "You can\'t have"+ "more than 6 people on a slate." ) return redirect("view-slate", slate_id = slate.id) for invite in clean['invite_list'].split(','): invite = invite.strip() try: validate_email( invite ) except ValidationError: #not an email address, continue with next invite continue else: # user doesn't exist # create an invitee item try: invite = Invitee.objects.get(email = invite, slate = slate.id) except Invitee.DoesNotExist: pass else: #invite already exists, let's pass continue invite = Invitee.objects.create( email=invite,slate=slate) invite.save() link_url = request.build_absolute_uri( "/invite/slate/%i/%i/%s/"%(slate.id,invite.id,slugify(slate.name)) ) subject = ( "%s invited you to a slate on " "IdeaOtter" ) %( request.user.username ) from_email = "Idea Otter <*****@*****.**>" plaintext = get_template('email/slate_invite.txt') htmly = get_template('email/slate_invite.html') d = Context( { 'username': request.user.email, 'url': link_url, 'email': invite.email } ) text_content = plaintext.render(d) html_content = htmly.render(d) msg = EmailMultiAlternatives(subject, text_content, from_email, [invite.email]) msg.attach_alternative(html_content, "text/html") try: print "sending email" msg.send() except: print html_content pass ideaForm = IdeaForm() inviteForm = InviteForm() voteUpForm = VoteForm({'vote':'+'}) ideas = ideaForm participants = slate.users.all() slate_ideas = slate.ideas.all() slate_ideas = slate_ideas.order_by('-date') return render_to_response("main/view_slate.html", locals(), context_instance = RequestContext(request))
def splash(request,show=''): is_splash = "splash" client_sub_domain = CLIENT_SUB_DOMAIN if not request.user.is_authenticated(): form = AuthenticationForm() registerForm = UserCreationForm() if request.method=="POST": register(request) return HttpResponseRedirect("/") else: recent_ideas = Idea.objects.exclude(private=True).order_by('?')[:6] return render_to_response("main/splash.html", locals(), context_instance=RequestContext(request)) # # else there is a user and we can just show the general page # else: user = request.user #if user.has_perm(app.idea.can_add): # post_idea = True #else: # post_idea = False if request.method == 'POST': #If something has been submitted if 'vote' in request.POST: voteForm = VoteForm(request.POST) if voteForm.is_valid(): helpers.vote(voteForm,request.user) if 'submit_email' in request.POST: emailForm = EmailForm(request.POST) if emailForm.is_valid(): clean = emailForm.cleaned_data exists = User.objects.filter(email=clean['email']) if len(exists) > 0: messages.error(request, ( "That e-mail address is " "already in use, have you signed up before " "using a different username?")) return HttpResponseRedirect("/") user.email = clean['email'] helpers.send_verify_email(clean['email'],user,request) user.save() if 'submit_idea' in request.POST: idea = helpers.add_idea(request) if 'submit_idea_elaborate' in request.POST: idea = helpers.add_idea(request) if idea: return HttpResponseRedirect(reverse('edit-idea', args=[idea.id])) voteUpForm = VoteForm({'vote':'+'}) voteDownForm = VoteForm({'vote':'-'}) ideaForm = IdeaForm() searchForm = SearchForm() emailForm = EmailForm({'email':user.email}) all_ideas = Idea.objects.exclude(private=True).annotate(votes=Count('vote_on')) if show == 'started': all_ideas = Idea.objects.filter(started=True).exclude(private=True).annotate(votes=Count('vote_on')) elif show == 'not-started': all_ideas = Idea.objects.exclude(started=True).exclude(private=True).annotate(votes=Count('vote_on')) if show == 'top': all_ideas = all_ideas.order_by('-votes') else: all_ideas = all_ideas.order_by('-date') all_ideas = helpers.process_ideas(user, all_ideas) return render_to_response("main/home.html",locals(), context_instance=RequestContext(request))