From 11135b5592670057014cb001895ede92042cec67 Mon Sep 17 00:00:00 2001 From: Martin Bauer Date: Thu, 26 Sep 2013 21:56:32 +0200 Subject: [PATCH] Enhanced Map control --- blechreiz/database.sqlite | Bin 56320 -> 50176 bytes .../media}/user_images/martin_circle.png | Bin .../media}/user_images/rebecca_circle.png | Bin blechreiz/settings.py | 2 +- eventplanner/admin.py | 6 +- eventplanner/models.py | 32 ++- eventplanner/serializers.py | 9 +- .../eventplanner/eventplanning_view.html | 4 +- .../templates/eventplanner/events_grid.html | 6 +- eventplanner/views.py | 25 +- .../templates/musicians/addressbook.html | 7 +- website/static/css/concert_route.css | 148 ++++++++++ website/static/css/contact.css | 240 ----------------- .../img/slides/{blechreiz01 => }/andi.jpg | Bin .../img/slides/{blechreiz01 => }/andi2.jpg | Bin .../img/slides/{blechreiz01 => }/applaus.jpg | Bin .../img/slides/{blechreiz01 => }/bass.png | Bin .../static/img/slides/blechreiz01/gruppe.png | Bin 259326 -> 0 bytes .../img/slides/{blechreiz01 => }/daempfer.jpg | Bin .../img/slides/{blechreiz01 => }/eindruck.jpg | Bin website/static/img/slides/gruppe.png | Bin 0 -> 252986 bytes .../img/slides/{blechreiz01 => }/publikum.jpg | Bin website/static/img/slides/scene1/macbook.png | Bin 201506 -> 0 bytes website/static/img/slides/scene2/left.png | Bin 91977 -> 0 bytes website/static/img/slides/scene2/middle.png | Bin 184131 -> 0 bytes website/static/img/slides/scene2/right.png | Bin 63507 -> 0 bytes website/static/img/slides/scene3/desktop.png | Bin 88210 -> 0 bytes website/static/img/slides/scene3/ipad.png | Bin 35648 -> 0 bytes website/static/img/slides/scene3/iphone.png | Bin 13275 -> 0 bytes website/static/img/slides/scene3/macbook.png | Bin 64381 -> 0 bytes website/static/img/slides/scene4/css3.png | Bin 17403 -> 0 bytes website/static/img/slides/scene4/html5.png | Bin 15194 -> 0 bytes .../img/slides/{blechreiz01 => }/spielen.jpg | Bin .../img/slides/{blechreiz01 => }/spielen2.jpg | Bin .../img/slides/{blechreiz01 => }/ticotico.jpg | Bin .../slides/{blechreiz01 => }/ticotico2.jpg | Bin .../img/slides/{blechreiz01 => }/tuba.png | Bin website/templates/website/base.html | 23 +- website/templates/website/concert_route.html | 177 ++++++++++++ .../templates/website/event_countdown.html | 77 ++++++ website/templates/website/mainpage.html | 253 +----------------- .../templates/website/slider_intern_area.html | 99 +++++++ website/views.py | 29 +- 43 files changed, 574 insertions(+), 563 deletions(-) rename {media => blechreiz/media}/user_images/martin_circle.png (100%) rename {media => blechreiz/media}/user_images/rebecca_circle.png (100%) create mode 100644 website/static/css/concert_route.css delete mode 100644 website/static/css/contact.css rename website/static/img/slides/{blechreiz01 => }/andi.jpg (100%) rename website/static/img/slides/{blechreiz01 => }/andi2.jpg (100%) rename website/static/img/slides/{blechreiz01 => }/applaus.jpg (100%) rename website/static/img/slides/{blechreiz01 => }/bass.png (100%) delete mode 100644 website/static/img/slides/blechreiz01/gruppe.png rename website/static/img/slides/{blechreiz01 => }/daempfer.jpg (100%) rename website/static/img/slides/{blechreiz01 => }/eindruck.jpg (100%) create mode 100644 website/static/img/slides/gruppe.png rename website/static/img/slides/{blechreiz01 => }/publikum.jpg (100%) delete mode 100644 website/static/img/slides/scene1/macbook.png delete mode 100644 website/static/img/slides/scene2/left.png delete mode 100644 website/static/img/slides/scene2/middle.png delete mode 100644 website/static/img/slides/scene2/right.png delete mode 100644 website/static/img/slides/scene3/desktop.png delete mode 100644 website/static/img/slides/scene3/ipad.png delete mode 100644 website/static/img/slides/scene3/iphone.png delete mode 100644 website/static/img/slides/scene3/macbook.png delete mode 100644 website/static/img/slides/scene4/css3.png delete mode 100644 website/static/img/slides/scene4/html5.png rename website/static/img/slides/{blechreiz01 => }/spielen.jpg (100%) rename website/static/img/slides/{blechreiz01 => }/spielen2.jpg (100%) rename website/static/img/slides/{blechreiz01 => }/ticotico.jpg (100%) rename website/static/img/slides/{blechreiz01 => }/ticotico2.jpg (100%) rename website/static/img/slides/{blechreiz01 => }/tuba.png (100%) create mode 100644 website/templates/website/concert_route.html create mode 100644 website/templates/website/event_countdown.html create mode 100644 website/templates/website/slider_intern_area.html diff --git a/blechreiz/database.sqlite b/blechreiz/database.sqlite index 1b9bebfedff020acaf9ef56fd1996624cd518294..b45dbe788ab064c33c0c22ca68adf4e4c1799848 100644 GIT binary patch delta 4143 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 A-v9sr literal 56320 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 diff --git a/media/user_images/martin_circle.png b/blechreiz/media/user_images/martin_circle.png similarity index 100% rename from media/user_images/martin_circle.png rename to blechreiz/media/user_images/martin_circle.png diff --git a/media/user_images/rebecca_circle.png b/blechreiz/media/user_images/rebecca_circle.png similarity index 100% rename from media/user_images/rebecca_circle.png rename to blechreiz/media/user_images/rebecca_circle.png diff --git a/blechreiz/settings.py b/blechreiz/settings.py index 16471a2..0d76ce2 100644 --- a/blechreiz/settings.py +++ b/blechreiz/settings.py @@ -53,7 +53,7 @@ USE_TZ = True # Absolute filesystem path to the directory that will hold user-uploaded files. # Example: "/var/www/example.com/media/" -MEDIA_ROOT = PROJECT_PATH + "/../media/" +MEDIA_ROOT = PROJECT_PATH + "/media/" # URL that handles the media served from MEDIA_ROOT. Make sure to use a # trailing slash. diff --git a/eventplanner/admin.py b/eventplanner/admin.py index edab05c..688213a 100644 --- a/eventplanner/admin.py +++ b/eventplanner/admin.py @@ -5,13 +5,13 @@ from eventplanner.models import Event, EventParticipation class EventParticipationInline(admin.TabularInline): model = EventParticipation extra = 1 - readonly_fields = ('musician',) - fields = ( 'musician', 'status', 'comment', ) + readonly_fields = ('user',) + fields = ( 'user', 'status', 'comment', ) has_add_permission = lambda self, req : False has_delete_permission = lambda self, req, obj : False template = "custom_tabular.html" - + class EventAdmin(admin.ModelAdmin): inlines = ( EventParticipationInline, ) diff --git a/eventplanner/models.py b/eventplanner/models.py index ed28693..d8db628 100644 --- a/eventplanner/models.py +++ b/eventplanner/models.py @@ -1,7 +1,8 @@ from django.db import models from django.utils.translation import ugettext as _ +from django.contrib.auth.models import User + -from musicians.models import Musician from datetime import datetime from location_field.models import PlainLocationField @@ -26,9 +27,7 @@ class Event ( models.Model ): time = models.TimeField( null=True, blank=True, verbose_name = _("time") ) meeting_time = models.TimeField( null=True, blank=True, verbose_name = _("meeting_time") ) - - - participants = models.ManyToManyField( Musician, through='EventParticipation', verbose_name=_("participants") ) + participants = models.ManyToManyField( User, through='EventParticipation', verbose_name=_("participants") ) def __unicode__(self): return self.title + " ( " + self.get_type_display() + " ) " @@ -39,9 +38,9 @@ class Event ( models.Model ): super(Event, self).save(*args, **kwargs) # Create a "Don't Know" participation for each Musician - for m in Musician.objects.all(): - if not m in self.participants.all(): - EventParticipation.objects.create( event=self, musician = m, status='?', comment = '' ) + for u in User.objects.all(): + if not u in self.participants.all(): + EventParticipation.objects.create( event=self, user = u, status='?', comment = '' ) @property def displaytime(self): @@ -60,19 +59,18 @@ class EventParticipation( models.Model ): ) event = models.ForeignKey( Event, verbose_name=_("event") ) - musician = models.ForeignKey( Musician, verbose_name=_("musician") ) + user = models.ForeignKey( User, verbose_name=_("user") ) status = models.CharField ( max_length=3, choices = OPTIONS, default='?', verbose_name=_("status") ) comment = models.CharField ( max_length=64, blank=True, verbose_name=_("comment") ) - - def get_musician_username(self): - return self.musician.user.username + def get_username(self): + return self.user.username @staticmethod def hasUserSetParticipationForAllEvents( user ): futurePart = EventParticipation.objects.filter( event__date__gte = datetime.now() ) - maybeObjects = futurePart.filter( musician__user = user ).filter( status = '?' ) - + + maybeObjects = futurePart.filter( user = user ).filter( status = '?' ) if len( maybeObjects ) > 0: return False else: @@ -80,16 +78,16 @@ class EventParticipation( models.Model ): @staticmethod - def get_or_create( musician , event ): + def get_or_create( user , event ): try: - result = EventParticipation.objects.get( event = event, musician = musician ) + result = EventParticipation.objects.get( event = event, user = user ) except EventParticipation.DoesNotExist: - result = EventParticipation.objects.create( event = event, musician = musician, status='?', comment = '' ) + result = EventParticipation.objects.create( event = event, user = user, status='?', comment = '' ) return result class Meta: - unique_together = ("event", "musician") + unique_together = ("event", "user") permissions = ( ("change_others_participation", _("Can modify participation status of other users") ), ) diff --git a/eventplanner/serializers.py b/eventplanner/serializers.py index e0dc106..5daf0f0 100644 --- a/eventplanner/serializers.py +++ b/eventplanner/serializers.py @@ -5,20 +5,19 @@ from models import EventParticipation class ParticipationSerializer(serializers.ModelSerializer): - event = serializers.PrimaryKeyRelatedField( many=False, read_only = False ) - musician = serializers.Field( source='get_musician_username' ) -# musician = serializers.PrimaryKeyRelatedField( many=False, read_only = False ) + event = serializers.PrimaryKeyRelatedField( many=False, read_only = False ) + user = serializers.Field( source='get_username' ) def get_identity(self, data): """ This hook is required for bulk update. """ try: - return ( data.get('event', None), data.get('musician') ) + return ( data.get('event', None), data.get('user') ) except AttributeError: return None class Meta: model = EventParticipation - fields = ('event', 'musician', 'status', 'comment') + fields = ('event', 'user', 'status', 'comment') diff --git a/eventplanner/templates/eventplanner/eventplanning_view.html b/eventplanner/templates/eventplanner/eventplanning_view.html index 1b191f4..c2224a2 100644 --- a/eventplanner/templates/eventplanner/eventplanning_view.html +++ b/eventplanner/templates/eventplanner/eventplanning_view.html @@ -44,7 +44,7 @@ function putStatus( button, status ) { p = button.parent(); putObject = [ { "event": p.data("event-id"), - "musician": p.data("username"), + "user": p.data("username"), "status": status } ]; request = $.ajax( { @@ -66,7 +66,7 @@ putObject = [ { "event": $(this).data("event-id"), - "musician": $(this).data("username"), + "user": $(this).data("username"), "comment": $(this).val() } ]; $.ajax( { diff --git a/eventplanner/templates/eventplanner/events_grid.html b/eventplanner/templates/eventplanner/events_grid.html index 978feda..91d8822 100644 --- a/eventplanner/templates/eventplanner/events_grid.html +++ b/eventplanner/templates/eventplanner/events_grid.html @@ -72,7 +72,7 @@ dataObject = { "event" : $(this).data("event"), - "musician": $(this).data("musician"), + "user" : $(this).data("username"), "status" : $(this).children("button").data("status") }; @@ -117,7 +117,7 @@ Termin Datum - {% for name in musicianNames %} + {% for name in usernames %} {{ name|capfirst }} {% endfor %} @@ -133,7 +133,7 @@ {% for p in event.participation %} - + {% if p.status == "Yes" %}