Added logout

Different paste forms for registred and anonymous users
This commit is contained in:
Sebastian 2013-10-17 16:16:27 +02:00
parent ffa5a039d9
commit cc5e2e7d78
5 changed files with 43 additions and 8 deletions

View File

@ -1,4 +1,5 @@
from django.forms import ModelForm
from django import forms
from models import Geometry
@ -6,4 +7,12 @@ from models import Geometry
class GeometryForm(ModelForm):
class Meta:
model = Geometry
fields = ['name', 'description', 'public', 'expiration', 'file', 'sourcefile']
fields = ['name', 'description', 'public', 'expiration', 'file', 'sourcefile']
class AnonymousGeometryForm(ModelForm):
expiration = forms.ChoiceField(choices=Geometry.EXPIRATION_CHOICES[:-1])
class Meta:
model = Geometry
fields = ['name', 'description', 'public', 'expiration', 'file']

View File

@ -3,7 +3,7 @@ from django.views.generic.detail import DetailView
from django.core.urlresolvers import reverse
from django.views.generic.base import ContextMixin
from forms import GeometryForm
from forms import GeometryForm, AnonymousGeometryForm
from models import Geometry
@ -23,9 +23,22 @@ class GeometryView(DetailView):
class GeometryCreate(CreateView, LastesGeometriesMixin):
model = Geometry
form_class = GeometryForm
template_name = 'pastebin/geometry_create.html'
def get_success_url(self):
return reverse('geometry_details', kwargs={'id' :self.object.id})
def get_form_class(self):
if self.request.user.is_authenticated() :
return GeometryForm
else:
return AnonymousGeometryForm
def form_valid(self, form):
res = super(GeometryCreate, self).form_valid(form)
if self.request.user.is_authenticated() :
self.object.user = self.request.user
self.object.save()
return res

View File

@ -22,9 +22,12 @@
<ul>
<li ><a href="#">Home</a></li>
<li><a href="{% url 'geometry_create' %}">New Paste</a></li>
<li><a href="{% url 'login' %}">Login</a></li>
<li><a href="#">Sign up</a></li>
<li><a href="#">Logout</a></li>
{% if user.is_authenticated %}
<li><a href="{% url 'logout' %}">Logout</a></li>
{% else %}
<li><a href="{% url 'login' %}">Login</a></li>
<li><a href="#">Sign up</a></li>
{% endif %}
</ul>
</div>
</div>

View File

@ -20,7 +20,11 @@
<div class="pure-g-r">
<div class="pure-u-2-3">
<div class="textcontainer">
<form method="post" class="pure-form pure-form-aligned">
{% if user.is_authenticated %}
You are already logged in !<br/>
Did you mean: <a href="{% url 'logout' %}">logout</a> ?
{% else %}
<form method="post" class="pure-form pure-form-aligned">
{% csrf_token %}
<fieldset>
{% for field in form %}
@ -35,6 +39,8 @@
<input class="pure-button button-green" id="submitbutton" type="submit" value="Login" />
</div>
</fieldset>
</form>
{% endif %}
</div>
</div>
<div class="pure-u-1-3">

View File

@ -1,8 +1,12 @@
from django.conf.urls import patterns, include, url
from django.core.urlresolvers import reverse_lazy
from pastebin.models import Geometry
urlpatterns = patterns('',
url(r'^login/$', 'django.contrib.auth.views.login', {'extra_context' : {'latest_geometries' : Geometry.get_latest()},
'template_name' : 'users/login.html'},
name='login'))
name='login'),
url(r'^logout/$', 'django.contrib.auth.views.logout',{'extra_context' : {'latest_geometries' : Geometry.get_latest()},
'next_page' : reverse_lazy('login')},
name='logout'),)