summaryrefslogtreecommitdiff
path: root/project/kiwipycon/proceedings/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'project/kiwipycon/proceedings/views.py')
-rw-r--r--project/kiwipycon/proceedings/views.py203
1 files changed, 0 insertions, 203 deletions
diff --git a/project/kiwipycon/proceedings/views.py b/project/kiwipycon/proceedings/views.py
deleted file mode 100644
index 6a21691..0000000
--- a/project/kiwipycon/proceedings/views.py
+++ /dev/null
@@ -1,203 +0,0 @@
- # -*- coding: utf-8 -*-
-
-import os
-
-from django.contrib.auth import login
-from django.contrib.auth.decorators import login_required
-from django.contrib.auth.forms import AuthenticationForm
-from django.contrib.auth.models import User
-from django.core.urlresolvers import reverse
-from django.shortcuts import render_to_response
-from django.template import RequestContext
-
-from project.kiwipycon.proceedings.models import Paper
-from project.kiwipycon.user.forms import RegisterForm
-from project.kiwipycon.user.models import UserProfile
-from project.kiwipycon.utils import set_message_cookie
-from project.kiwipycon.proceedings.booklet import mk_scipy_paper
-from project.kiwipycon.proceedings.forms import ProceedingsForm
-
-
-def handleUploadedFile(proceedings_form_data, rst_file):
- """Handles the uploaded file content and process the form
- """
-
- title = proceedings_form_data.get('title')
- abstract = proceedings_form_data.get('abstract')
- body = proceedings_form_data.get('body')
- authors = proceedings_form_data.get('authors')
-
- if rst_file:
- destination = open('some/file/name.txt', 'wb+')
- for chunk in rst_file.chunks():
- destination.write(chunk)
- destination.close()
-
- return title, abstract, body, authors
-
-
-@login_required
-def submit(request, id=None, template='proceedings/submit.html'):
- """View to submit the proceedings paper.
- """
-
- user = request.user
- if user.is_authenticated():
- try:
- profile = user.get_profile()
- except:
- profile, new = UserProfile.objects.get_or_create(user=user)
- if new:
- profile.save()
- message = None
-
- if request.method == 'POST':
- register_form = RegisterForm(data=request.POST)
-
- if request.POST.get('action', None) == 'login':
- login_form = AuthenticationForm(data=request.POST)
- if login_form.is_valid():
-
- login(request, login_form.get_user())
-
- redirect_to = reverse('kiwipycon_submit_proceedings')
- return set_message_cookie(redirect_to,
- msg = u'You have been logged in.')
-
- if request.POST.get('action', None) == 'register':
- # add the new user
- if register_form.is_valid():
-
- user = kiwipycon_createuser(request, register_form.data)
-
- proceedings_form = ProceedingsForm(data=request.POST,
- files=request.FILES)
-
- if proceedings_form.is_valid():
- if user.is_authenticated():
- # Data from reSt file is appended to the data in fields
- title, abstract, body, authors = handleUploadedFile(
- proceedings_form.cleaned_data, request.FILES.get('file'))
-
- paper = edit(id, title=title,
- abstract=abstract, body=body,
- authors=authors) if id else create(title=title,
- abstract=abstract, body=body,
- authors=authors)
-
- # Successfully saved. So get back to the edit page.
- redirect_to = reverse('kiwipycon_submit_proceedings',
- args=[paper.id])
- return set_message_cookie(
- redirect_to, msg = u'Thanks, your paper has been submitted.')
- else:
- # This is impossible. Something was wrong so return back
- # to submit page
- redirect_to = reverse('kiwipycon_submit_proceedings')
- return set_message_cookie(
- redirect_to, msg = u'Something is wrong here.')
- else:
- if id:
- # If id exists initialize the form with old values
- paper = Paper.objects.get(id=id)
- proceedings_form = ProceedingsForm(
- initial={'title': paper.title,
- 'abstract': paper.abstract,
- 'body': paper.body,
- 'authors': ', '.join([
- author.username for author in paper.authors.all()])
- })
- else:
- # Otherwise create a new form
- proceedings_form = ProceedingsForm()
-
- register_form = RegisterForm()
- login_form = AuthenticationForm()
-
- context = RequestContext(request, {
- 'proceedings_form': proceedings_form,
- 'register_form' : register_form,
- 'message' : message,
- 'login_form' : login_form
- })
-
- context['id'] = id if id else None
-
- return render_to_response(template, context)
-
-
-def create(**kwargs):
- """View to create a new proceedings.
- """
-
- title = kwargs.get('title')
- abstract = kwargs.get('abstract')
- body = kwargs.get('body')
- authors = kwargs.get('authors')
-
- paper = Paper(title=title, abstract=abstract, body=body)
- paper.save()
-
- if authors:
- authors = authors.split(',')
- for author in authors:
- user = User.objects.get(username=author.strip())
- paper.authors.add(user)
-
- return paper
-
-
-def edit(id, **kwargs):
- """View to edit the proceedings paper.
- """
-
- paper = Paper.objects.get(id=id)
-
- paper.title = kwargs.get('title')
- paper.abstract = kwargs.get('abstract')
- paper.body = kwargs.get('body')
- authors = kwargs.get('authors')
-
- if authors:
- authors = authors.split(',')
- for author in authors:
- user = User.objects.get(username=author.strip())
- paper.authors.add(user)
-
- paper.save()
-
- return paper
-
-
-def show_paper(request, id):
- """Display the thumbnail of the rendered paper for download
- """
-
- paper = Paper.objects.get(id=id)
-
- paper_data = {
- 'paper_abstract': paper.abstract,
- 'authors': [
- {'first_names': author.first_name,
- 'surname': author.last_name,
- 'address': 'XXX',
- 'country': 'XXX',
- 'email_address': 'XXX@xx.com',
- 'institution': 'XXX'
- } for author in paper.authors.all()],
- 'title': paper.title
- }
-
- abstract = mk_scipy_paper.Bunch(**paper_data)
- abstract.authors = [mk_scipy_paper.Bunch(**a) for a in abstract.authors]
-
- abstract['paper_text'] = paper.body
-
- outfilename = '/media/python/workspace/kiwipycon/project/kiwipycon/proceedings/booklet/output/paper.pdf'
- attach_dir = os.path.dirname('/media/python/workspace/kiwipycon/project/kiwipycon/proceedings/booklet/output/')
- mk_scipy_paper.mk_abstract_preview(abstract, outfilename, attach_dir)
-
- from django.http import HttpResponse
- return HttpResponse('Machi')
-
- \ No newline at end of file