project/kiwipycon/proceedings/views.py
changeset 84 d01c62c2a628
child 87 1ec579a679e4
equal deleted inserted replaced
83:c6557935bc28 84:d01c62c2a628
       
     1 # -*- coding: utf-8 -*-
       
     2 
       
     3 from django.contrib.auth.decorators import login_required
       
     4 from django.contrib.auth.forms import AuthenticationForm
       
     5 from django.shortcuts import render_to_response
       
     6 from django.template import RequestContext
       
     7 
       
     8 from project.kiwipycon.user.forms import RegisterForm
       
     9 from project.kiwipycon.proceedings.forms import ProceedingsForm
       
    10 
       
    11 
       
    12 @login_required
       
    13 def submit(request, template = 'proceedings/submit.html'):
       
    14     """View to submit the proceedings paper.
       
    15     """
       
    16     user = request.user
       
    17     if user.is_authenticated():
       
    18         try:
       
    19             profile = user.get_profile()
       
    20         except:
       
    21             profile, new = UserProfile.objects.get_or_create(user=user)
       
    22             if new:
       
    23                 profile.save()
       
    24     message = None
       
    25 
       
    26     if request.method == 'POST':
       
    27         proceedings_form = ProceedingsForm(data=request.POST)
       
    28 
       
    29         register_form = RegisterForm(data=request.POST,
       
    30                                         files=request.FILES)
       
    31 
       
    32         if request.POST.get('action', None) == 'login':
       
    33             login_form = AuthenticationForm(data=request.POST)
       
    34             if login_form.is_valid():
       
    35 
       
    36                 from django.contrib.auth import login
       
    37                 login(request, login_form.get_user())
       
    38 
       
    39                 redirect_to = reverse('kiwipycon_submit_proceedings')
       
    40                 return set_message_cookie(redirect_to,
       
    41                         msg = u'You have been logged in.')
       
    42 
       
    43         if request.POST.get('action', None) == 'register':
       
    44             # add the new user
       
    45             if register_form.is_valid():
       
    46 
       
    47                 user = kiwipycon_createuser(request, register_form.data)
       
    48 
       
    49         if proceedings_form.is_valid():
       
    50             if user.is_authenticated():
       
    51                 title = proceedings_form.data.get('title')
       
    52 
       
    53                 # Saved, ... redirect back to account
       
    54                 redirect_to = reverse('kiwipycon_account')
       
    55                 return set_message_cookie(redirect_to,
       
    56                         msg = u'Thanks, your paper has been submitted.')
       
    57             else:
       
    58                 redirect_to = reverse('kiwipycon_submit_proceedings')
       
    59                 return set_message_cookie(redirect_to,
       
    60                         msg = u'Something is wrong here.')
       
    61 
       
    62     else:
       
    63         proceedings_form = ProceedingsForm()
       
    64         register_form = RegisterForm()
       
    65     login_form = AuthenticationForm()
       
    66 
       
    67         
       
    68     proceedings_form = ProceedingsForm()
       
    69     register_form = RegisterForm()
       
    70     login_form = AuthenticationForm()
       
    71 
       
    72     context = RequestContext(request, {
       
    73         'proceedings_form': proceedings_form,
       
    74         'register_form' : register_form,
       
    75         'message' : message,
       
    76         'login_form' : login_form
       
    77         })
       
    78 
       
    79     return render_to_response(template, context)
       
    80 
       
    81 
       
    82 def edit(request, id, template = 'proceedings/edit.html'):
       
    83     """View to edit the proceedings paper.
       
    84     """
       
    85 
       
    86     context = RequestContext(request, {
       
    87         'proceedings_form': proceedings_form,
       
    88         'register_form' : register_form,
       
    89         'message' : message,
       
    90         'login_form' : login_form
       
    91         })
       
    92 
       
    93     return render_to_response(template, context)