diff --git a/spa/models/Mix.py b/spa/models/Mix.py index 11e49af..bb539fa 100644 --- a/spa/models/Mix.py +++ b/spa/models/Mix.py @@ -84,7 +84,6 @@ class Mix(_BaseModel): def get_date_as_rfc822(self): return rfc822.formatdate(rfc822.mktime_tz(rfc822.parsedate_tz(self.upload_date.strftime("%a, %d %b %Y %H:%M:%S")))) - @classmethod def get_for_username(cls, user): queryset = Mix.objects.filter(user__profile_slug__exact=user).order_by( '-id') @@ -93,25 +92,23 @@ class Mix(_BaseModel): @classmethod def get_listing(cls, listing_type, user=None): queryset = None + candidates = Mix.objects\ + .filter(waveform_generated=True)\ + .filter(is_featured=True) + if listing_type == 'latest': - queryset = Mix.objects.filter(waveform_generated=True).order_by( '-id') + queryset = candidates.order_by( '-id') elif listing_type == 'toprated': - queryset = Mix.objects.all()\ - .annotate(karma=Count('likes'))\ - .order_by('-karma') + queryset = candidates.annotate(karma=Count('likes')).order_by('-karma') elif listing_type == 'mostactive': - queryset = Mix.objects.all()\ - .annotate(karma=Count('comments'))\ - .order_by('-karma') + queryset = candidates.filter(waveform_generated=True).annotate(karma=Count('comments')).order_by('-karma') elif listing_type == 'mostplayed': - queryset = Mix.objects.all()\ - .annotate(karma=Count('plays'))\ - .order_by('-karma') + queryset = queryset = candidates.annotate(karma=Count('plays')).order_by('-karma') elif listing_type == 'recommended': - queryset = Mix.objects.all().order_by( '-id') + queryset = queryset = candidates.order_by( '-id') elif listing_type == 'favourites': - queryset = Mix.objects.filter(favourites__user=user).order_by('favourites__date') - debug = queryset.query + queryset = queryset = candidates.filter(favourites__user=user).order_by('favourites__date') + return queryset @classmethod diff --git a/spa/models/_BaseModel.py b/spa/models/_BaseModel.py index 7e6c571..4aeb0da 100644 --- a/spa/models/_BaseModel.py +++ b/spa/models/_BaseModel.py @@ -47,6 +47,9 @@ class _BaseModel(models.Model): def clean_image(self, image_field, sender): if self.__dict__[image_field] == "DONOTSEND": - old_instance = sender.objects.get(pk=self.pk) - if old_instance is not None: - self.__dict__[image_field] = old_instance.__dict__[image_field] \ No newline at end of file + try: + old_instance = sender.objects.get(pk=self.pk) + if old_instance is not None: + self.__dict__[image_field] = old_instance.__dict__[image_field] + except Exception, ex: + pass \ No newline at end of file diff --git a/static/css/deepsouthsounds.css b/static/css/deepsouthsounds.css index 5d953c9..d3f856a 100644 --- a/static/css/deepsouthsounds.css +++ b/static/css/deepsouthsounds.css @@ -283,11 +283,11 @@ table .headerSortUp:after { -moz-opacity: 0.6; opacity: 0.6; } - +/* input[type="checkbox"] { visibility: hidden; } - +*/ .slideThree { width: 80px; height: 26px; diff --git a/static/js/app/views/mix.js b/static/js/app/views/mix.js index 5f3a8a5..e01cc2a 100644 --- a/static/js/app/views/mix.js +++ b/static/js/app/views/mix.js @@ -236,7 +236,7 @@ window.MixCreateView = DSSEditableView.extend({ $('.fileupload', this.el).fileupload({ 'uploadtype':'image' }); - $('#mix-details', this.el).hide(); + //$('#mix-details', this.el).hide(); $('.upload-hash', this.el).val(this.guid); } else { $('#div-upload-mix', this.el).hide(); diff --git a/static/js/libs/backbone/backbone.mine.js b/static/js/libs/backbone/backbone.mine.js index eb39f42..a03dc55 100644 --- a/static/js/libs/backbone/backbone.mine.js +++ b/static/js/libs/backbone/backbone.mine.js @@ -72,9 +72,16 @@ window.DSSEditableView = Backbone.View.extend({ }, changed:function (evt) { var changed = evt.currentTarget; + //$("#" + changed.id) if (!com.podnoms.utils.isEmpty(changed.id)) { - var value = $("#" + changed.id).val(); - var obj = "{\"" + changed.id + "\":\"" + value.replace(/\n/g, '
') + "\"}"; + var value, obj; + if ($(changed).is(':checkbox')) { + value = $(changed).is(':checked'); + obj = "{\"" + changed.id + "\":" + value + "}"; + } else { + value = $(changed).val(); + obj = "{\"" + changed.id + "\":\"" + value.replace(/\n/g, '
') + "\"}"; + } var objInst = JSON.parse(obj); this.model.set(objInst); } @@ -149,7 +156,7 @@ window.DSSEditableView = Backbone.View.extend({ args[0].success(); }, error:function () { - alert("Error saving release"); + args[0].error(); } }); } diff --git a/templates/views/MixCreateView.html b/templates/views/MixCreateView.html index 34652e7..0ce2e14 100644 --- a/templates/views/MixCreateView.html +++ b/templates/views/MixCreateView.html @@ -16,8 +16,10 @@
+
- +
@@ -51,6 +53,12 @@ Remove + {% if user.is_staff %} +
+ +
+ {% endif %}
diff --git a/templates/views/MixListView.html b/templates/views/MixListView.html index 3b6d0e0..84e9bdc 100644 --- a/templates/views/MixListView.html +++ b/templates/views/MixListView.html @@ -8,8 +8,6 @@
  • Favourites
  • {% endif %} - {% if user.is_staff %} -
  • Upload
  • - {% endif %} +
  • Upload
  • \ No newline at end of file