User Profile & URL Cleanup

This commit is contained in:
Martin Bauer 2013-09-29 16:22:42 +02:00
parent d71c35bcd7
commit 0e26988867
9 changed files with 43 additions and 46 deletions

Binary file not shown.

View File

@ -2,29 +2,26 @@ from django.conf.urls import patterns, include, url
from django.contrib import admin
from musicians.views import MusicianList, addressbook
from musicians.views import user_edit
import website.views
import simpleforum.views
import eventplanner.urls
import musicians.urls
import settings
from django.conf.urls.static import static
admin.autodiscover()
urlpatterns = patterns('',
url(r'$^', website.views.home_view ),
url(r'^events/', include( eventplanner.urls.urlpatterns) ),
url(r'^admin/', include(admin.site.urls) ),
url(r'^admin/doc/', include('django.contrib.admindocs.urls') ),
url(r'^musicians/$', MusicianList.as_view() ),
url(r'^musicians/(?P<username>[\w]+)$', user_edit ),
url(r'^addressbook/$', addressbook ),
url(r'^login/$', website.views.login_view),
url(r'$^', website.views.home_view ),
url(r'^login/$', website.views.login_view),
url(r'^login/usernames$', website.views.userlistForAutocompletion),
url(r'^logout/$', website.views.logout_view),
url(r'^messages/$', simpleforum.views.message_view ),
url(r'^location_field/', include('location_field.urls')),
url(r'^logout/$', website.views.logout_view),
url(r'^events/', include( eventplanner.urls.urlpatterns) ),
url(r'^musicians/', include( musicians.urls.urlpatterns) ),
url(r'^messages/$', simpleforum.views.message_view ),
url(r'^admin/', include(admin.site.urls) ),
url(r'^location_field/', include('location_field.urls')),
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

View File

@ -28,9 +28,11 @@
{% addtoblock "js" %}
<script>
$(document).ready(function(){
{% if not perms.eventplanner.change_others_participation %}
$(".eventButton").attr('disabled', 'disabled');
$(".deleteButton").hide();
{% endif %}
$('.eventButton').tooltip()
@ -97,7 +99,7 @@
}
});
});
</script>
{% endaddtoblock %}

View File

@ -43,6 +43,8 @@ class Musician( models.Model ):
position = models.IntegerField( null=True, verbose_name=_("Position") )
public_description = models.TextField( blank=True, verbose_name=_("public_description") )
@property
def isDeepBrass(self):
return self.instrument == 'TRB' or self.instrument == "EUPH" or self.instrument == "TUBA" or self.instrument == "HRN"
@ -51,7 +53,6 @@ class Musician( models.Model ):
def isHighBrass(self):
return self.instrument == 'TR'
public_description = models.TextField( blank=True, verbose_name=_("public_description") )
def __unicode__( self ):
return self.user.username

View File

@ -18,19 +18,18 @@
<div class="container">
<div class="row">
<h3>{{user.first_name}} {{user.last_name}}</h3>
<h3>{{musician.user.first_name}} {{musician.user.last_name}}</h3>
<div class="span6">
<form method="post">
{% csrf_token %}
{{ form }}
<br>
<input type="submit" class="btn btn-primary" value="Abschicken"></input>
<input type="submit" class="btn btn-primary" value="Speichern"></input>
</form>
</div>
<div class="span6">
<img src="{{MEDIA_URL}}/user_images/{{user.username}}.png"></img>
<img src="{{MEDIA_URL}}/{{musician.image}}"></img>
</div>
</div>
</div>

View File

@ -1,16 +0,0 @@
"""
This file demonstrates writing tests using the unittest module. These will pass
when you run "manage.py test".
Replace this with more appropriate tests for your application.
"""
from django.test import TestCase
class SimpleTest(TestCase):
def test_basic_addition(self):
"""
Tests that 1 + 1 always equals 2.
"""
self.assertEqual(1 + 1, 2)

11
musicians/urls.py Normal file
View File

@ -0,0 +1,11 @@
from django.conf.urls import patterns, url
import musicians.views
urlpatterns = patterns('',
url(r'^$', musicians.views.addressbook ),
url(r'^profile$', musicians.views.own_profile ),
url(r'^(?P<username>[\w]+)$$', musicians.views.user_edit ),
)

View File

@ -36,15 +36,19 @@ class UserEditForm( forms.ModelForm ):
def save(self):
if self.is_valid():
super(UserEditForm,self).save()
self.instance.user.email = self.cleaned_data['email']
self.instance.user.email = self.cleaned_data['email']
self.instance.user.save()
class Meta:
model = Musician
exclude = [ 'user','image', 'instrument' ]
exclude = [ 'user','image', 'small_image', 'instrument', 'position', 'public_description' ]
#fields = '__all__'
def own_profile( request ):
return user_edit( request, request.user )
def user_edit( request, username ):
musician = get_object_or_404( Musician, user__username=username )
@ -53,11 +57,11 @@ def user_edit( request, username ):
form.instance = musician
if form.is_valid(): # All validation rules pass
form.save()
return HttpResponseRedirect('/musicians/' + username) # Redirect after POST
return HttpResponseRedirect('/') # Redirect after POST
else:
form = UserEditForm( instance= musician )
return render(request, 'musicians/musician_edit.html', { 'form': form, } )
return render(request, 'musicians/musician_edit.html', { 'form': form, 'musician': musician } )

View File

@ -103,21 +103,20 @@ $.ajaxSetup({
<div class="nav-collapse collapse">
<ul class="nav pull-right">
{% block menu_contents %}
<li><a href="/">HOME</a></li>
<li><a href="/events"> Termine</a></li>
<li><a href="/messages">Forum</a></li>
<li><a href="/musicians">Adressbuch</a></li>
{% endblock %}
{% if user.is_authenticated %}
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
{{user.username|capfirst}}
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="/events"> Termine</a></li>
<li><a href="/messages">Forum</a></li>
<li><a href="/musicians/profile">Eigenes Profil</a></li>
<li><a href="/logout"> Logout</a></li>
</ul>
</li>