From 7058422cc38c87515d0254a1c68e20d05f4919a5 Mon Sep 17 00:00:00 2001 From: alois Date: Sun, 10 Apr 2016 16:47:33 +0200 Subject: [PATCH 1/5] add package install instruction for fedora 23 --- README.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.rst b/README.rst index c03d32327..4e40786a0 100644 --- a/README.rst +++ b/README.rst @@ -47,6 +47,13 @@ and stable state. $ virtualenv --python python3 venv-django $ source venv-django/bin/activate +On fedora 23 :: + + $ sudo dnf install python3-devel python-virtualenv nodejs npm libjpeg-turbo-devel zlib-devel git + $ virtualenv --python python3 venv-django + $ source venv-django/bin/activate + + 2) Start the application. This will download the required JS and CSS libraries and create a SQlite database and populate it with data on the first run. From 594abbd2fb62605e56fcbb83df153f1b18b1177a Mon Sep 17 00:00:00 2001 From: alois Date: Sun, 10 Apr 2016 16:48:57 +0200 Subject: [PATCH 2/5] display secondary muscle on workout page --- wger/manager/models.py | 29 +++++++++++++++++++++++++---- wger/manager/views/workout.py | 8 ++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/wger/manager/models.py b/wger/manager/models.py index 4872ff7fc..6b1ccaa48 100644 --- a/wger/manager/models.py +++ b/wger/manager/models.py @@ -117,6 +117,8 @@ def canonical_representation(self): day_canonical_repr = [] muscles_front = [] muscles_back = [] + muscles_front_secondary = [] + muscles_back_secondary = [] # Sort list by weekday day_list = [i for i in self.day_set.select_related()] @@ -132,13 +134,19 @@ def canonical_representation(self): for i in canonical_repr_day['muscles']['back']: if i not in muscles_back: muscles_back.append(i) + for i in canonical_repr_day['muscles']['frontsecondary']: + if i not in muscles_front_secondary: + muscles_front_secondary.append(i) + for i in canonical_repr_day['muscles']['backsecondary']: + if i not in muscles_back_secondary: + muscles_back_secondary.append(i) day_canonical_repr.append(canonical_repr_day) workout_canonical_form = {'obj': self, - 'muscles': {'front': muscles_front, 'back': muscles_back}, + 'muscles': {'front': muscles_front, 'back': muscles_back, 'frontsecondary':muscles_front_secondary, 'backsecondary': muscles_back_secondary }, 'day_list': day_canonical_repr} - + print(workout_canonical_form) # Save to cache cache.set(cache_mapper.get_workout_canonical(self.pk), workout_canonical_form) @@ -426,6 +434,9 @@ def get_canonical_representation(self): canonical_repr = [] muscles_front = [] muscles_back = [] + muscles_front_secondary = [] + muscles_back_secondary = [] + for set_obj in self.set_set.select_related(): exercise_tmp = [] @@ -440,6 +451,12 @@ def get_canonical_representation(self): elif not muscle.is_front and muscle.id not in muscles_back: muscles_back.append(muscle.id) + for muscle in exercise.muscles_secondary.all(): + if muscle.is_front and muscle.id not in muscles_front: + muscles_front_secondary.append(muscle.id) + elif not muscle.is_front and muscle.id not in muscles_back: + muscles_back_secondary.append(muscle.id) + for setting in Setting.objects.filter(set=set_obj, exercise=exercise).order_by('order', 'id'): setting_tmp.append(setting) @@ -495,7 +512,9 @@ def get_canonical_representation(self): 'has_settings': has_setting_tmp, 'muscles': { 'back': muscles_back, - 'front': muscles_front + 'front': muscles_front, + 'frontsecondary': muscles_front_secondary, + 'backsecondary': muscles_front_secondary }}) # Days of the week @@ -510,7 +529,9 @@ def get_canonical_representation(self): 'day_list': tmp_days_of_week}, 'muscles': { 'back': muscles_back, - 'front': muscles_front + 'front': muscles_front, + 'frontsecondary': muscles_front_secondary, + 'backsecondary': muscles_front_secondary }, 'set_list': canonical_repr} diff --git a/wger/manager/views/workout.py b/wger/manager/views/workout.py index 92daec482..1262b78d1 100644 --- a/wger/manager/views/workout.py +++ b/wger/manager/views/workout.py @@ -93,6 +93,14 @@ def view(request, pk): if i not in muscles_back: muscles_back.append('images/muscles/main/muscle-{0}.svg'.format(i)) + for i in canonical['muscles']['frontsecondary']: + if i not in muscles_front: + muscles_front.append('images/muscles/secondary/muscle-{0}.svg'.format(i)) + for i in canonical['muscles']['backsecondary']: + if i not in muscles_back: + muscles_back.append('images/muscles/secondary/muscle-{0}.svg'.format(i)) + + # Append the silhouette of the human body as the last entry so the browser # renders it in the background muscles_front.append('images/muscles/muscular_system_front.svg') From 22cf061daee163c6605ca05a2aeabb63b516634a Mon Sep 17 00:00:00 2001 From: alois Date: Tue, 19 Apr 2016 21:01:50 +0200 Subject: [PATCH 3/5] fixing unit test for new canonical representation --- wger/manager/tests/test_workout_canonical.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/wger/manager/tests/test_workout_canonical.py b/wger/manager/tests/test_workout_canonical.py index e6a2d609e..2303618ca 100644 --- a/wger/manager/tests/test_workout_canonical.py +++ b/wger/manager/tests/test_workout_canonical.py @@ -41,12 +41,13 @@ def test_canonical_form(self): workout = Workout.objects.get(pk=1) setting_1 = Setting.objects.get(pk=1) setting_2 = Setting.objects.get(pk=2) - self.assertEqual(workout.canonical_representation['muscles'], {'back': [2], 'front': [1]}) + self.assertEqual(workout.canonical_representation['muscles'], + {'back': [2], 'frontsecondary': [1], 'backsecondary': [1], 'front': [1]}) self.assertEqual(workout.canonical_representation['obj'], workout) canonical_form = {'days_of_week': {'day_list': [DaysOfWeek.objects.get(pk=2)], 'text': u'Tuesday'}, - 'muscles': {'back': [2], 'front': [1]}, + 'muscles': {'back': [2], 'frontsecondary': [], 'backsecondary': [], 'front': [1]}, 'obj': Day.objects.get(pk=1), 'set_list': [{'exercise_list': [{'obj': Exercise.objects.get(pk=1), 'comment_list': [u'test 123'], @@ -58,14 +59,14 @@ def test_canonical_form(self): 'setting_text': u'2 \xd7 8'}], 'is_superset': False, 'has_settings': True, - 'muscles': {'back': [2], 'front': [1]}, + 'muscles': {'back': [2], 'frontsecondary': [], 'backsecondary': [], 'front': [1]}, 'obj': Set.objects.get(pk=1)}]} self.assertEqual(workout.canonical_representation['day_list'][0], canonical_form) canonical_form = {'days_of_week': {'day_list': [DaysOfWeek.objects.get(pk=4)], 'text': u'Thursday'}, 'obj': Day.objects.get(pk=2), - 'muscles': {'back': [2], 'front': []}, + 'muscles': {'back': [2], 'frontsecondary': [1], 'backsecondary': [1], 'front': []}, 'set_list': [{'exercise_list': [{'obj': Exercise.objects.get(pk=2), 'comment_list': [u'Foobar'], 'has_weight': True, @@ -79,14 +80,14 @@ def test_canonical_form(self): 'setting_text': u'4 \xd7 10 (15kg)'}], 'is_superset': False, 'has_settings': True, - 'muscles': {'back': [2], 'front': []}, + 'muscles': {'back': [2], 'frontsecondary': [1], 'backsecondary': [1], 'front': []}, 'obj': Set.objects.get(pk=2)}]} self.assertEqual(workout.canonical_representation['day_list'][1], canonical_form) canonical_form = {'days_of_week': {'day_list': [DaysOfWeek.objects.get(pk=5)], 'text': u'Friday'}, 'obj': Day.objects.get(pk=4), - 'muscles': {'back': [], 'front': []}, + 'muscles': {'back': [], 'front': [],'frontsecondary': [], 'backsecondary': []}, 'set_list': []} self.assertEqual(workout.canonical_representation['day_list'][2], canonical_form) @@ -100,7 +101,8 @@ def test_canonical_form_day(self): weekday2 = DaysOfWeek.objects.get(pk=5) self.assertEqual(day.canonical_representation['days_of_week'], {'day_list': [weekday1, weekday2], 'text': u'Wednesday, Friday'}) - self.assertEqual(day.canonical_representation['muscles'], {'back': [2], 'front': []}) + self.assertEqual(day.canonical_representation['muscles'], + {'back': [2], 'frontsecondary': [1], 'backsecondary': [1], 'front': []}) self.assertEqual(day.canonical_representation['obj'], day) canonical_form = [{'exercise_list': [{'obj': Exercise.objects.get(pk=2), @@ -113,7 +115,7 @@ def test_canonical_form_day(self): 'setting_text': u'4 \xd7 10'}], 'is_superset': False, 'has_settings': True, - 'muscles': {'back': [2], 'front': []}, + 'muscles': {'back': [2], 'frontsecondary': [1], 'backsecondary': [1], 'front': []}, 'obj': Set.objects.get(pk=3)}] self.assertEqual(day.canonical_representation['set_list'], canonical_form) From 692477e5427d89626d400483b80ce0b7b00cb71d Mon Sep 17 00:00:00 2001 From: alois Date: Tue, 19 Apr 2016 22:15:24 +0200 Subject: [PATCH 4/5] fixing pep remarks --- wger/manager/models.py | 6 +++-- wger/manager/tests/test_workout_canonical.py | 23 +++++++++++++++----- wger/manager/views/workout.py | 1 - 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/wger/manager/models.py b/wger/manager/models.py index 6b1ccaa48..c30a3fda0 100644 --- a/wger/manager/models.py +++ b/wger/manager/models.py @@ -144,7 +144,10 @@ def canonical_representation(self): day_canonical_repr.append(canonical_repr_day) workout_canonical_form = {'obj': self, - 'muscles': {'front': muscles_front, 'back': muscles_back, 'frontsecondary':muscles_front_secondary, 'backsecondary': muscles_back_secondary }, + 'muscles': {'front': muscles_front, + 'back': muscles_back, + 'frontsecondary': muscles_front_secondary, + 'backsecondary': muscles_back_secondary}, 'day_list': day_canonical_repr} print(workout_canonical_form) # Save to cache @@ -437,7 +440,6 @@ def get_canonical_representation(self): muscles_front_secondary = [] muscles_back_secondary = [] - for set_obj in self.set_set.select_related(): exercise_tmp = [] has_setting_tmp = True diff --git a/wger/manager/tests/test_workout_canonical.py b/wger/manager/tests/test_workout_canonical.py index 2303618ca..69129c4a9 100644 --- a/wger/manager/tests/test_workout_canonical.py +++ b/wger/manager/tests/test_workout_canonical.py @@ -47,7 +47,10 @@ def test_canonical_form(self): canonical_form = {'days_of_week': {'day_list': [DaysOfWeek.objects.get(pk=2)], 'text': u'Tuesday'}, - 'muscles': {'back': [2], 'frontsecondary': [], 'backsecondary': [], 'front': [1]}, + 'muscles': {'back': [2], + 'frontsecondary': [], + 'backsecondary': [], + 'front': [1]}, 'obj': Day.objects.get(pk=1), 'set_list': [{'exercise_list': [{'obj': Exercise.objects.get(pk=1), 'comment_list': [u'test 123'], @@ -59,14 +62,18 @@ def test_canonical_form(self): 'setting_text': u'2 \xd7 8'}], 'is_superset': False, 'has_settings': True, - 'muscles': {'back': [2], 'frontsecondary': [], 'backsecondary': [], 'front': [1]}, + 'muscles': {'back': [2], 'frontsecondary': [], + 'backsecondary': [], + 'front': [1]}, 'obj': Set.objects.get(pk=1)}]} self.assertEqual(workout.canonical_representation['day_list'][0], canonical_form) canonical_form = {'days_of_week': {'day_list': [DaysOfWeek.objects.get(pk=4)], 'text': u'Thursday'}, 'obj': Day.objects.get(pk=2), - 'muscles': {'back': [2], 'frontsecondary': [1], 'backsecondary': [1], 'front': []}, + 'muscles': {'back': [2], + 'frontsecondary': [1], 'backsecondary': [1], + 'front': []}, 'set_list': [{'exercise_list': [{'obj': Exercise.objects.get(pk=2), 'comment_list': [u'Foobar'], 'has_weight': True, @@ -80,14 +87,17 @@ def test_canonical_form(self): 'setting_text': u'4 \xd7 10 (15kg)'}], 'is_superset': False, 'has_settings': True, - 'muscles': {'back': [2], 'frontsecondary': [1], 'backsecondary': [1], 'front': []}, + 'muscles': {'back': [2], + 'frontsecondary': [1], 'backsecondary': [1], + 'front': []}, 'obj': Set.objects.get(pk=2)}]} self.assertEqual(workout.canonical_representation['day_list'][1], canonical_form) canonical_form = {'days_of_week': {'day_list': [DaysOfWeek.objects.get(pk=5)], 'text': u'Friday'}, 'obj': Day.objects.get(pk=4), - 'muscles': {'back': [], 'front': [],'frontsecondary': [], 'backsecondary': []}, + 'muscles': {'back': [], 'front': [], + 'frontsecondary': [], 'backsecondary': []}, 'set_list': []} self.assertEqual(workout.canonical_representation['day_list'][2], canonical_form) @@ -115,7 +125,8 @@ def test_canonical_form_day(self): 'setting_text': u'4 \xd7 10'}], 'is_superset': False, 'has_settings': True, - 'muscles': {'back': [2], 'frontsecondary': [1], 'backsecondary': [1], 'front': []}, + 'muscles': {'back': [2], 'frontsecondary': [1], + 'backsecondary': [1], 'front': []}, 'obj': Set.objects.get(pk=3)}] self.assertEqual(day.canonical_representation['set_list'], canonical_form) diff --git a/wger/manager/views/workout.py b/wger/manager/views/workout.py index 1262b78d1..5cc14cfcb 100644 --- a/wger/manager/views/workout.py +++ b/wger/manager/views/workout.py @@ -100,7 +100,6 @@ def view(request, pk): if i not in muscles_back: muscles_back.append('images/muscles/secondary/muscle-{0}.svg'.format(i)) - # Append the silhouette of the human body as the last entry so the browser # renders it in the background muscles_front.append('images/muscles/muscular_system_front.svg') From ce5c0e9cc926a987b7630a60b2e58446e0094084 Mon Sep 17 00:00:00 2001 From: alois Date: Sat, 30 Apr 2016 16:46:04 +0200 Subject: [PATCH 5/5] remove debug line + fix add a muscle as primary and secondary --- wger/manager/models.py | 1 - wger/manager/views/workout.py | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/wger/manager/models.py b/wger/manager/models.py index c30a3fda0..d758bcf70 100644 --- a/wger/manager/models.py +++ b/wger/manager/models.py @@ -149,7 +149,6 @@ def canonical_representation(self): 'frontsecondary': muscles_front_secondary, 'backsecondary': muscles_back_secondary}, 'day_list': day_canonical_repr} - print(workout_canonical_form) # Save to cache cache.set(cache_mapper.get_workout_canonical(self.pk), workout_canonical_form) diff --git a/wger/manager/views/workout.py b/wger/manager/views/workout.py index 5cc14cfcb..77b0359e2 100644 --- a/wger/manager/views/workout.py +++ b/wger/manager/views/workout.py @@ -94,10 +94,10 @@ def view(request, pk): muscles_back.append('images/muscles/main/muscle-{0}.svg'.format(i)) for i in canonical['muscles']['frontsecondary']: - if i not in muscles_front: + if i not in muscles_front and i not in canonical['muscles']['front']: muscles_front.append('images/muscles/secondary/muscle-{0}.svg'.format(i)) for i in canonical['muscles']['backsecondary']: - if i not in muscles_back: + if i not in muscles_back and i not in canonical['muscles']['back']: muscles_back.append('images/muscles/secondary/muscle-{0}.svg'.format(i)) # Append the silhouette of the human body as the last entry so the browser