author | Madhusudan.C.S <madhusudancs@gmail.com> |
Thu, 01 Apr 2010 11:59:35 +0530 | |
changeset 93 | e86755df35da |
parent 90 | 587e9c025c73 |
permissions | -rw-r--r-- |
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
1 |
# -*- coding: utf-8 -*- |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
2 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
3 |
import os |
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
4 |
|
87
1ec579a679e4
Added two models, Paper and Attachments.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
84
diff
changeset
|
5 |
from django.contrib.auth import login |
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
6 |
from django.contrib.auth.decorators import login_required |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
7 |
from django.contrib.auth.forms import AuthenticationForm |
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
8 |
from django.contrib.auth.models import User |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
9 |
from django.core.urlresolvers import reverse |
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
10 |
from django.shortcuts import render_to_response |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
11 |
from django.template import RequestContext |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
12 |
|
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
13 |
from project.kiwipycon.proceedings.models import Paper |
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
14 |
from project.kiwipycon.user.forms import RegisterForm |
90
587e9c025c73
Added UserProfile import which was missing to Proceedings views.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
87
diff
changeset
|
15 |
from project.kiwipycon.user.models import UserProfile |
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
16 |
from project.kiwipycon.utils import set_message_cookie |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
17 |
from project.kiwipycon.proceedings.booklet import mk_scipy_paper |
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
18 |
from project.kiwipycon.proceedings.forms import ProceedingsForm |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
19 |
|
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
20 |
|
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
21 |
def handleUploadedFile(proceedings_form_data, rst_file): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
22 |
"""Handles the uploaded file content and process the form |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
23 |
""" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
24 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
25 |
title = proceedings_form_data.get('title') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
26 |
abstract = proceedings_form_data.get('abstract') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
27 |
body = proceedings_form_data.get('body') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
28 |
authors = proceedings_form_data.get('authors') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
29 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
30 |
if rst_file: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
31 |
destination = open('some/file/name.txt', 'wb+') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
32 |
for chunk in rst_file.chunks(): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
33 |
destination.write(chunk) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
34 |
destination.close() |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
35 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
36 |
return title, abstract, body, authors |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
37 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
38 |
|
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
39 |
@login_required |
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
40 |
def submit(request, id=None, template='proceedings/submit.html'): |
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
41 |
"""View to submit the proceedings paper. |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
42 |
""" |
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
43 |
|
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
44 |
user = request.user |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
45 |
if user.is_authenticated(): |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
46 |
try: |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
47 |
profile = user.get_profile() |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
48 |
except: |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
49 |
profile, new = UserProfile.objects.get_or_create(user=user) |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
50 |
if new: |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
51 |
profile.save() |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
52 |
message = None |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
53 |
|
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
54 |
if request.method == 'POST': |
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
55 |
register_form = RegisterForm(data=request.POST) |
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
56 |
|
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
57 |
if request.POST.get('action', None) == 'login': |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
58 |
login_form = AuthenticationForm(data=request.POST) |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
59 |
if login_form.is_valid(): |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
60 |
|
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
61 |
login(request, login_form.get_user()) |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
62 |
|
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
63 |
redirect_to = reverse('kiwipycon_submit_proceedings') |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
64 |
return set_message_cookie(redirect_to, |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
65 |
msg = u'You have been logged in.') |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
66 |
|
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
67 |
if request.POST.get('action', None) == 'register': |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
68 |
# add the new user |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
69 |
if register_form.is_valid(): |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
70 |
|
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
71 |
user = kiwipycon_createuser(request, register_form.data) |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
72 |
|
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
73 |
proceedings_form = ProceedingsForm(data=request.POST, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
74 |
files=request.FILES) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
75 |
|
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
76 |
if proceedings_form.is_valid(): |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
77 |
if user.is_authenticated(): |
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
78 |
# Data from reSt file is appended to the data in fields |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
79 |
title, abstract, body, authors = handleUploadedFile( |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
80 |
proceedings_form.cleaned_data, request.FILES.get('file')) |
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
81 |
|
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
82 |
paper = edit(id, title=title, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
83 |
abstract=abstract, body=body, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
84 |
authors=authors) if id else create(title=title, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
85 |
abstract=abstract, body=body, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
86 |
authors=authors) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
87 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
88 |
# Successfully saved. So get back to the edit page. |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
89 |
redirect_to = reverse('kiwipycon_submit_proceedings', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
90 |
args=[paper.id]) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
91 |
return set_message_cookie( |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
92 |
redirect_to, msg = u'Thanks, your paper has been submitted.') |
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
93 |
else: |
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
94 |
# This is impossible. Something was wrong so return back |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
95 |
# to submit page |
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
96 |
redirect_to = reverse('kiwipycon_submit_proceedings') |
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
97 |
return set_message_cookie( |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
98 |
redirect_to, msg = u'Something is wrong here.') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
99 |
else: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
100 |
if id: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
101 |
# If id exists initialize the form with old values |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
102 |
paper = Paper.objects.get(id=id) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
103 |
proceedings_form = ProceedingsForm( |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
104 |
initial={'title': paper.title, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
105 |
'abstract': paper.abstract, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
106 |
'body': paper.body, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
107 |
'authors': ', '.join([ |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
108 |
author.username for author in paper.authors.all()]) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
109 |
}) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
110 |
else: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
111 |
# Otherwise create a new form |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
112 |
proceedings_form = ProceedingsForm() |
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
113 |
|
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
114 |
register_form = RegisterForm() |
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
115 |
login_form = AuthenticationForm() |
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
116 |
|
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
117 |
context = RequestContext(request, { |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
118 |
'proceedings_form': proceedings_form, |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
119 |
'register_form' : register_form, |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
120 |
'message' : message, |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
121 |
'login_form' : login_form |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
122 |
}) |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
123 |
|
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
124 |
context['id'] = id if id else None |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
125 |
|
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
126 |
return render_to_response(template, context) |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
127 |
|
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
128 |
|
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
129 |
def create(**kwargs): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
130 |
"""View to create a new proceedings. |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
131 |
""" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
132 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
133 |
title = kwargs.get('title') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
134 |
abstract = kwargs.get('abstract') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
135 |
body = kwargs.get('body') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
136 |
authors = kwargs.get('authors') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
137 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
138 |
paper = Paper(title=title, abstract=abstract, body=body) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
139 |
paper.save() |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
140 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
141 |
if authors: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
142 |
authors = authors.split(',') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
143 |
for author in authors: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
144 |
user = User.objects.get(username=author.strip()) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
145 |
paper.authors.add(user) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
146 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
147 |
return paper |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
148 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
149 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
150 |
def edit(id, **kwargs): |
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
151 |
"""View to edit the proceedings paper. |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
152 |
""" |
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
153 |
|
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
154 |
paper = Paper.objects.get(id=id) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
155 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
156 |
paper.title = kwargs.get('title') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
157 |
paper.abstract = kwargs.get('abstract') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
158 |
paper.body = kwargs.get('body') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
159 |
authors = kwargs.get('authors') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
160 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
161 |
if authors: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
162 |
authors = authors.split(',') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
163 |
for author in authors: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
164 |
user = User.objects.get(username=author.strip()) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
165 |
paper.authors.add(user) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
166 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
167 |
paper.save() |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
168 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
169 |
return paper |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
170 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
171 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
172 |
def show_paper(request, id): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
173 |
"""Display the thumbnail of the rendered paper for download |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
174 |
""" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
175 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
176 |
paper = Paper.objects.get(id=id) |
84
d01c62c2a628
Added the initial proceedings app files and enabled them in both production and development settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
177 |
|
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
178 |
paper_data = { |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
179 |
'paper_abstract': paper.abstract, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
180 |
'authors': [ |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
181 |
{'first_names': author.first_name, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
182 |
'surname': author.last_name, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
183 |
'address': 'XXX', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
184 |
'country': 'XXX', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
185 |
'email_address': 'XXX@xx.com', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
186 |
'institution': 'XXX' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
187 |
} for author in paper.authors.all()], |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
188 |
'title': paper.title |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
189 |
} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
190 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
191 |
abstract = mk_scipy_paper.Bunch(**paper_data) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
192 |
abstract.authors = [mk_scipy_paper.Bunch(**a) for a in abstract.authors] |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
193 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
194 |
abstract['paper_text'] = paper.body |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
195 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
196 |
outfilename = '/media/python/workspace/kiwipycon/project/kiwipycon/proceedings/booklet/output/paper.pdf' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
197 |
attach_dir = os.path.dirname('/media/python/workspace/kiwipycon/project/kiwipycon/proceedings/booklet/output/') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
198 |
mk_scipy_paper.mk_abstract_preview(abstract, outfilename, attach_dir) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
199 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
200 |
from django.http import HttpResponse |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
201 |
return HttpResponse('Machi') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
202 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
90
diff
changeset
|
203 |