From f0849d2be0835bf2d5b3e86dd87d9ab582198a97 Mon Sep 17 00:00:00 2001 From: Fergal Moran Date: Thu, 2 May 2013 09:28:34 +0100 Subject: [PATCH] Fixed missing duration in mix --- dss/settings.py | 1 + spa/ajax.py | 2 +- spa/models/mix.py | 3 +++ spa/models/userprofile.py | 7 ++++++- spa/signals.py | 13 ++++++++++++- 5 files changed, 23 insertions(+), 3 deletions(-) diff --git a/dss/settings.py b/dss/settings.py index 821765b..1d04693 100644 --- a/dss/settings.py +++ b/dss/settings.py @@ -153,6 +153,7 @@ INSTALLED_APPS = ( 'django_extensions', 'django_gravatar', 'compressor', + 'notification', 'djcelery', 'sorl.thumbnail', 'south', diff --git a/spa/ajax.py b/spa/ajax.py index b2cbf31..85cf7f7 100644 --- a/spa/ajax.py +++ b/spa/ajax.py @@ -181,7 +181,7 @@ def toggle_follow(request): following = UserProfile.objects.get(pk=request.POST['userId']) if following is not None: if profile.followers is None or (following not in profile.followers.all()): - profile.followers.add(following) + profile.add_follower(following) response = _get_json('Followed') else: profile.followers.remove(following) diff --git a/spa/models/mix.py b/spa/models/mix.py index 29adb74..9c377cb 100644 --- a/spa/models/mix.py +++ b/spa/models/mix.py @@ -10,6 +10,7 @@ from django.db import models from django.db.models import Count from core.utils import url +from core.utils.audio.mp3 import mp3_length from core.utils.url import unique_slugify from spa.models.genre import Genre from spa.models.mixplay import MixPlay @@ -68,6 +69,8 @@ class Mix(_BaseModel): if os.path.isfile(self.get_waveform_path()): self.waveform_generated = True + self.duration = mp3_length(self.get_absolute_path()) + self.clean_image('mix_image', Mix) super(Mix, self).save(force_insert, force_update, using) diff --git a/spa/models/userprofile.py b/spa/models/userprofile.py index 1bec7e5..8f50af2 100644 --- a/spa/models/userprofile.py +++ b/spa/models/userprofile.py @@ -1,6 +1,6 @@ -from logging import log import logging import urlparse +from avatar.views import notification from django.contrib.auth.models import User from django.core.exceptions import SuspiciousOperation @@ -16,6 +16,7 @@ from spa.models._basemodel import _BaseModel logger = logging.getLogger(__name__) + def avatar_name(instance, filename): return generate_save_file_name(str(instance.id), 'avatars', filename) @@ -85,6 +86,10 @@ class UserProfile(_BaseModel): except Exception, e: self.logger.error("Unable to create profile slug: %s", e.message) + def add_follower(self, user): + self.followers.add(user) + notification.send(self.user, "new_follower", {"from_user": "admin@deepsouthsounds.com"}) + def is_follower(self, user): try: return user.get_profile() in self.followers.all() diff --git a/spa/signals.py b/spa/signals.py index a51670d..d7693a6 100644 --- a/spa/signals.py +++ b/spa/signals.py @@ -5,8 +5,9 @@ from django.dispatch import Signal from kombu import Connection from kombu.entity import Exchange from django.contrib.auth.models import User +from south import signals -from dss import localsettings +from dss import localsettings, settings from spa.models import _Activity from spa.models import UserProfile from spa.models.mix import Mix @@ -53,3 +54,13 @@ def create_user_profile(sender, instance, created, **kwargs): post_save.connect(create_user_profile, sender=User, dispatch_uid="users-profilecreation") + +if "notification" in settings.INSTALLED_APPS: + from notification import models as notification + + def create_notice_types(app, created_models, verbosity, **kwargs): + notification.create_notice_type("new_follower", _("You have a new follower on deepsouthsounds.com"), _("You have a new follower.")) + + signals.post_migrate.connect(create_notice_types, sender=notification) +else: + print "Skipping creation of NoticeTypes as notification app not found" \ No newline at end of file