# Create your views here. from django.http import HttpResponse from django.shortcuts import render from django.shortcuts import render_to_response from django.template import loader from django.template import RequestContext from django.contrib.auth.forms import UserCreationForm from django.views.decorators.csrf import csrf_exempt from django.contrib.auth.decorators import login_required from django.contrib.auth.models import User from website.models import Proposal, Comments, Ratings from website.forms import ProposalForm #UserRegisterForm, UserLoginForm, WorkshopForm, ContactForm def index(request): context = {} template = loader.get_template('index.html') return HttpResponse(template.render(context, request)) def proposal(request): context = {} template = loader.get_template('proposal.html') return HttpResponse(template.render(context, request)) ## User Register def userregister(request): context = {} registered_emails = [] users = User.objects.all() for user in users: registered_emails.append(user.email) if request.user.is_anonymous(): if request.method == 'POST': form = UserRegisterForm(request.POST) if form.is_valid(): data = form.cleaned_data if data['email'] in registered_emails: context['form'] = form context['email_registered'] = True return render_to_response('registration/signup.html', context) else: form.save() context['registration_complete'] = True form = UserLoginForm() context['form'] = form context['user'] = request.user return render_to_response('cfp.html', context) else: context['form'] = form return render_to_response('user-register.html', context) else: form = UserRegisterForm() context['form'] = form return render_to_response('user-register.html', context) else: context['user'] = request.user return render_to_response('cfp.html', context) ## View Proposal/Abstract @login_required def view_abstracts(request): user = request.user context = {} count_list =[] if request.user.is_authenticated: if user.is_superuser : proposals = Proposal.objects.all().order_by('status') ratings = Ratings.objects.all() context['ratings'] = ratings context['proposals'] = proposals context['user'] = user return render(request, 'view-proposals.html', context) elif user is not None: if Proposal.objects.filter(user = user).exists : proposals = Proposal.objects.filter(user = user).order_by('status') proposal_list= [pro.proposal_type for pro in proposals] if 'WORKSHOP' in proposal_list and 'ABSTRACT' in proposal_list: proposal_type = 'BOTH' elif 'WORKSHOP' in proposal_list and 'ABSTRACT' not in proposal_list: proposal_type = 'WORKSHOP' else: proposal_type = 'ABSTRACT' context['counts'] = count_list context['proposals'] =proposals context['type'] = proposal_type context['user'] = user return render(request, 'view-proposals.html', context) else: return render(request, 'cfp.html') else: return render(request, 'cfp.html', context) def cfp(request): if request.method == "POST": context = {} username = request.POST.get('username', None) password = request.POST.get('password', None) user = authenticate(username=username, password=password) if user is not None: login(request, user) if 'next' in request.GET: next = request.GET.get('next', None) return HttpResponseRedirect(next) proposals = Proposal.objects.filter(user = request.user).count() context['user'] = user context['proposals'] = proposals return render_to_response('cfp.html', context) else: context['invalid'] = True context['form'] = UserLoginForm context['user'] = user return render_to_response('cfp.html', context) else: form = UserLoginForm() context = {'request': request, 'user': request.user, } template = loader.get_template('cfp.html') return HttpResponse(template.render(context, request)) @login_required def submitcfp(request): context = {} if request.user.is_authenticated: social_user = request.user django_user = User.objects.get(username=social_user) context['user'] = django_user proposals_a = Proposal.objects.filter(user = request.user, proposal_type = 'ABSTRACT').count() if request.method == 'POST': form = ProposalForm(request.POST, request.FILES) if form.is_valid(): data = form.save(commit=False) data.user = django_user data.email = social_user.email data.save() context['proposal_submit'] = True sender_name = "SciPy India 2017" sender_email = TO_EMAIL subject = "SciPy India 2017 – Talk Proposal Submission Acknowledgment" to = (social_user.email, TO_EMAIL) message = """ Dear {0},

Thank you for showing interest & submitting a talk proposal at SciPy India 2017 conference for the talk titled “{1}”. Reviewal of the proposals will start once the CFP closes.

You will be notified regarding comments/selection/rejection of your talk via email. Visit this {2} link to view status of your submission.
Thank You !

Regards,
SciPy India 2017,
FOSSEE - IIT Bombay. """.format( social_user.first_name, request.POST.get('title', None), 'http://scipy.in/2017/view-abstracts/', ) email = EmailMultiAlternatives( subject,'', sender_email, to, headers={"Content-type":"text/html;charset=iso-8859-1"} ) email.attach_alternative(message, "text/html") email.send(fail_silently=True) return render_to_response('cfp.html', context) else: context['proposal_form'] = form context['proposals_a'] = proposals_a template = loader.get_template('submit-cfp.html') return HttpResponse(template.render(context, request)) else: form = ProposalForm() context['proposals_a'] = proposals_a return render(request, 'submit-cfp.html', {'form': form}) else: context['login_required'] = True return render_to_response('cfp.html', context)