--- a/project/kiwipycon/proceedings/views.py Tue May 11 03:47:41 2010 +0530
+++ b/project/kiwipycon/proceedings/views.py Tue May 11 03:48:47 2010 +0530
@@ -9,13 +9,16 @@
from django.core.urlresolvers import reverse
from django.shortcuts import render_to_response
from django.template import RequestContext
+from django.utils import simplejson as json
+from project.kiwipycon.proceedings.booklet import mk_scipy_paper
+from project.kiwipycon.proceedings.forms import ProceedingsForm
from project.kiwipycon.proceedings.models import Paper
from project.kiwipycon.user.forms import RegisterForm
from project.kiwipycon.user.models import UserProfile
+from project.kiwipycon.user.utils import kiwipycon_createuser
from project.kiwipycon.utils import set_message_cookie
-from project.kiwipycon.proceedings.booklet import mk_scipy_paper
-from project.kiwipycon.proceedings.forms import ProceedingsForm
+from project import settings
def handleUploadedFile(proceedings_form_data, rst_file):
@@ -25,15 +28,15 @@
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:
+ # TODO: using stating only for testing purposes.
destination = open('some/file/name.txt', 'wb+')
for chunk in rst_file.chunks():
destination.write(chunk)
destination.close()
- return title, abstract, body, authors
+ return title, abstract, body
@login_required
@@ -41,6 +44,8 @@
"""View to submit the proceedings paper.
"""
+ context = RequestContext(request, {})
+
user = request.user
if user.is_authenticated():
try:
@@ -67,17 +72,17 @@
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(
+ title, abstract, body = handleUploadedFile(
proceedings_form.cleaned_data, request.FILES.get('file'))
+ authors = request.POST.get('as_values_authors')
paper = edit(id, title=title,
abstract=abstract, body=body,
@@ -104,9 +109,11 @@
initial={'title': paper.title,
'abstract': paper.abstract,
'body': paper.body,
- 'authors': ', '.join([
- author.username for author in paper.authors.all()])
})
+ context['initial_authors'] = json.dumps([
+ {'name': str(author.username),
+ 'value': '%s (%s)' % (author.get_full_name(), author.username)
+ } for author in paper.authors.all()])
else:
# Otherwise create a new form
proceedings_form = ProceedingsForm()
@@ -114,13 +121,10 @@
register_form = RegisterForm()
login_form = AuthenticationForm()
- context = RequestContext(request, {
- 'proceedings_form': proceedings_form,
- 'register_form' : register_form,
- 'message' : message,
- 'login_form' : login_form
- })
-
+ context['proceedings_form'] = proceedings_form
+ context['register_form'] = register_form
+ context['message'] = message
+ context['login_form'] = login_form
context['id'] = id if id else None
return render_to_response(template, context)
@@ -159,7 +163,7 @@
authors = kwargs.get('authors')
if authors:
- authors = authors.split(',')
+ authors = authors.strip(' ,').split(',')
for author in authors:
user = User.objects.get(username=author.strip())
paper.authors.add(user)
@@ -172,32 +176,37 @@
def show_paper(request, id):
"""Display the thumbnail of the rendered paper for download
"""
-
+
paper = Paper.objects.get(id=id)
+ # TODO: Address and country should be required field in the user forms
+ # henceforth. Also contact numbers.
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'
+ 'address': 'None',
+ 'country': 'India',
+ 'email_address': author.email,
+ 'institution': author.registration_set.get().organisation,
+ 'city': author.registration_set.get().city
} 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/')
+ out_dir = attach_dir = os.path.join(settings.STATIC_ROOT,
+ 'proceedings', 'output')
+ outfilename = os.path.join(out_dir, 'paper%d.pdf' % (paper.id))
mk_scipy_paper.mk_abstract_preview(abstract, outfilename, attach_dir)
- from django.http import HttpResponse
- return HttpResponse('Machi')
+ context = {'paper_id': paper.id,
+ 'out_path': '/static/proceedings/output' }
+ template = 'proceedings/show_paper_preview.html'
-
\ No newline at end of file
+ return render_to_response(template, context)