diff --git a/rowers/forms.py b/rowers/forms.py index d7210ac4..8e35e8c4 100644 --- a/rowers/forms.py +++ b/rowers/forms.py @@ -298,12 +298,19 @@ class FusionMetricChoiceForm(ModelForm): super(FusionMetricChoiceForm, self).__init__(*args, **kwargs) # need to add code to remove "empty" fields - id = self.instance.id - df = dataprep.getrowdata_db(id=id) + if self.instance.id is not None: + id = self.instance.id + df = dataprep.getrowdata_db(id=id)[0] - labeldict = {key:value for key,value in metricchoices} + labeldict = {key:value for key,value in self.fields['columns'].choices} - for label in labeldict: - if df[label].std() == 0: - self.fields['columns'].choices.remove((label, labeldict[label])) + for label in labeldict: + if df.ix[:,label].std() == 0: + try: + formaxlabels.pop(label) + except KeyError: + pass + + metricchoices = list(sorted(formaxlabels.items(), key = lambda x:x[1])) + self.fields['columns'].choices = metricchoices diff --git a/rowers/views.py b/rowers/views.py index 6a5ccf3b..a5df9370 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -5079,7 +5079,7 @@ def workout_summary_restore_view(request,id,message="",successmessage=""): return HttpResponseRedirect(url) # Fuse two workouts -@login_required() +@user_passes_test(ispromember,login_url="/",redirect_field_name=None) def workout_fusion_view(request,id1=0,id2=1): try: w1 = Workout.objects.get(id=id1) @@ -5092,7 +5092,7 @@ def workout_fusion_view(request,id1=0,id2=1): raise Http404("One of the workouts doesn't exist") if request.method == 'POST': - form = FusionMetricChoiceForm(request.POST) + form = FusionMetricChoiceForm(request.POST,instance=w2) if form.is_valid(): cd = form.cleaned_data columns = cd['columns']