[Pharo] Personal fitness tracker web app.
Miscellaneous cleanup and minor fixes.
Changed files
src/MyFitnessTracker/MFTMainNavigationBarComponent.class.st
@@ -45,7 +45,7 @@
45
45
dataTarget: '#navbarCollapsed';
46
46
with: [ html navigationBarTogglerIcon ].
47
47
html navigationBarBrand
48
Removed:
callback: [ pm activePage: 1 ];
48
Added:
callback: [ pm activePage: #landing ];
49
49
with: 'MyFitnessTracker'.
50
50
html navigationBarCollapse collapse
51
51
id: 'navbarCollapsed';
src/MyFitnessTracker/MFTSession.class.st
@@ -29,6 +29,13 @@
29
29
pageManager := MFTPageManager new
30
30
]
31
31
32
Added:
{ #category : #'as yet unclassified' }
33
Added:
MFTSession >> loadUserWeights [
34
Added:
35
Added:
user weights:
36
Added:
(self session db selectWeightsWhereUser: self session user)
37
Added:
]
38
Added:
32
39
{ #category : #login }
33
40
MFTSession >> login: aMFTUser [
34
41
src/MyFitnessTracker/MFTUser.class.st
@@ -24,7 +24,7 @@
24
24
{ #category : #'as yet unclassified' }
25
25
MFTUser class >> defaultRpe [
26
26
27
Removed:
^ 8
27
Added:
^ 6
28
28
]
29
29
30
30
{ #category : #'instance creation' }
@@ -36,8 +36,8 @@
36
36
realLastName: 'Default';
37
37
dateOfBirth: (Date fromString: '01/01/2000');
38
38
isLoggedIn: false;
39
Removed:
workouts: self placeholderWorkouts;
40
Removed:
weights: self placeholderWeights
39
Added:
workouts: MFTWorkout placeholderCollection;
40
Added:
weights: MFTWeight placeholderCollection
41
41
]
42
42
43
43
{ #category : #'instance creation' }
@@ -65,61 +65,6 @@
65
65
]
66
66
67
67
{ #category : #'as yet unclassified' }
68
Removed:
MFTUser class >> placeholderWeights [
69
Removed:
70
Removed:
^ OrderedCollection withAll: {
71
Removed:
(MFTWeight date: (Date fromString: '01/01/2024') value: 90).
72
Removed:
(MFTWeight date: (Date fromString: '01/02/2024') value: 91).
73
Removed:
(MFTWeight date: (Date fromString: '01/03/2024') value: 92).
74
Removed:
(MFTWeight date: (Date fromString: '01/04/2024') value: 93) }
75
Removed:
]
76
Removed:
77
Removed:
{ #category : #'as yet unclassified' }
78
Removed:
MFTUser class >> placeholderWorkouts [
79
Removed:
80
Removed:
| placeholderWorkouts workout1 workout2 workout3 |
81
Removed:
placeholderWorkouts := OrderedCollection new.
82
Removed:
workout1 := MFTWorkout new
83
Removed:
date: (Date fromString: '01/03/2023');
84
Removed:
primaryMuscle: MFTMuscleGroup chest;
85
Removed:
exercises: (OrderedCollection
86
Removed:
with: (MFTExercise cableRow sets: {
87
Removed:
(MFTSet reps: 8 rpe: 6).
88
Removed:
(MFTSet reps: 6 rpe: 8).
89
Removed:
(MFTSet reps: 6 rpe: 10).
90
Removed:
(MFTSet reps: 15 rpe: 4) })
91
Removed:
with: (MFTExercise shoulderPressDumbell sets: {
92
Removed:
(MFTSet reps: 10 rpe: 6).
93
Removed:
(MFTSet reps: 6 rpe: 8).
94
Removed:
(MFTSet reps: 6 rpe: 10) })
95
Removed:
with: (MFTExercise declineBenchPress sets: {
96
Removed:
(MFTSet reps: 5 rpe: 6).
97
Removed:
(MFTSet reps: 6 rpe: 8).
98
Removed:
(MFTSet reps: 8 rpe: 10) })).
99
Removed:
workout2 := MFTWorkout new
100
Removed:
date: (Date fromString: '01/02/2023');
101
Removed:
exercises: (OrderedCollection
102
Removed:
with: (MFTExercise cableRow sets: {
103
Removed:
(MFTSet reps: 8 rpe: 6).
104
Removed:
(MFTSet reps: 6 rpe: 8).
105
Removed:
(MFTSet reps: 6 rpe: 10).
106
Removed:
(MFTSet reps: 15 rpe: 4) })
107
Removed:
with: MFTExercise shoulderPressDumbell
108
Removed:
with: MFTExercise declineBenchPress).
109
Removed:
workout3 := MFTWorkout new
110
Removed:
date: (Date fromString: '01/01/2023');
111
Removed:
addExercise: MFTExercise cableRow;
112
Removed:
addExercise: MFTExercise shoulderPressDumbell;
113
Removed:
addExercise: MFTExercise declineBenchPress.
114
Removed:
placeholderWorkouts
115
Removed:
add: workout1;
116
Removed:
add: workout2;
117
Removed:
add: workout3.
118
Removed:
119
Removed:
^ placeholderWorkouts
120
Removed:
]
121
Removed:
122
Removed:
{ #category : #'as yet unclassified' }
123
68
MFTUser >> dataDictionary [
124
69
125
70
^ OrderedDictionary newFrom: {
@@ -261,7 +206,7 @@
261
206
{ #category : #accessing }
262
207
MFTUser >> weights [
263
208
264
Removed:
^ weights
209
Added:
^ weights sort: [ :a :b | a date < b date ]
265
210
]
266
211
267
212
{ #category : #accessing }
@@ -273,7 +218,7 @@
273
218
{ #category : #accessing }
274
219
MFTUser >> workouts [
275
220
276
Removed:
^ workouts
221
Added:
^ workouts sort: [ :a :b | a date < b date ]
277
222
]
278
223
279
224
{ #category : #accessing }
src/MyFitnessTracker/MFTWeight.class.st
@@ -3,8 +3,7 @@
3
3
#superclass : #Object,
4
4
#instVars : [
5
5
'date',
6
Removed:
'value',
7
Removed:
'user'
6
Added:
'value'
8
7
],
9
8
#category : #MyFitnessTracker
10
9
}
@@ -36,6 +35,24 @@
36
35
yourself
37
36
]
38
37
38
Added:
{ #category : #'as yet unclassified' }
39
Added:
MFTWeight class >> placeholderCollection [
40
Added:
41
Added:
^ OrderedCollection withAll: {
42
Added:
(self new
43
Added:
date: (Date fromString: '01/01/2024');
44
Added:
value: 90).
45
Added:
(self new
46
Added:
date: (Date fromString: '01/02/2024');
47
Added:
value: 91).
48
Added:
(self new
49
Added:
date: (Date fromString: '01/03/2024');
50
Added:
value: 92).
51
Added:
(self new
52
Added:
date: (Date fromString: '01/04/2024');
53
Added:
value: 93) }
54
Added:
]
55
Added:
39
56
{ #category : #accessing }
40
57
MFTWeight class >> value: aValue [
41
58
@@ -60,25 +77,15 @@
60
77
MFTWeight >> initialize [
61
78
62
79
super initialize.
63
Removed:
date := Date today
80
Added:
date := Date today.
81
Added:
value := 50
82
Added:
"Default value should really be the user's most recently recorded weight's value..."
64
83
]
65
84
66
Removed:
{ #category : #accessing }
67
Removed:
MFTWeight >> user [
68
Removed:
69
Removed:
^ user
70
Removed:
]
71
Removed:
72
Removed:
{ #category : #accessing }
73
Removed:
MFTWeight >> user: aMFTUser [
74
Removed:
75
Removed:
user := aMFTUser
76
Removed:
]
77
Removed:
78
85
{ #category : #evaluating }
79
86
MFTWeight >> value [
80
87
81
Removed:
^ value
88
Added:
^ value asNumber
82
89
]
83
90
84
91
{ #category : #accessing }
src/MyFitnessTracker/MFTWeightsListPage.class.st
@@ -7,24 +7,12 @@
7
7
#category : #'MyFitnessTracker-Components'
8
8
}
9
9
10
Removed:
{ #category : #rendering }
11
Removed:
MFTWeightsListPage class >> placeholder [
12
Removed:
13
Removed:
^ self new
14
Removed:
weights: (OrderedCollection withAll: {
15
Removed:
(MFTWeight date: (Date fromString: '01/01/2024') value: 90).
16
Removed:
(MFTWeight date: (Date fromString: '01/02/2024') value: 91).
17
Removed:
(MFTWeight date: (Date fromString: '01/03/2024') value: 92).
18
Removed:
(MFTWeight date: (Date fromString: '01/04/2024') value: 93) });
19
Removed:
yourself
20
Removed:
]
21
Removed:
22
10
{ #category : #adding }
23
11
MFTWeightsListPage >> addWeight [
24
12
25
13
| newWeight |
26
14
newWeight := self call: MFTWeightDialog new.
27
Removed:
(newWeight isNotNil and: [ (newWeight value = 0) not ]) ifTrue: [
15
Added:
(newWeight isNotNil and: [ newWeight value ~~ '' ]) ifTrue: [
28
16
self session user weights add: newWeight ]
29
17
]
30
18
@@ -34,8 +22,9 @@
34
22
| oldWeight newWeight |
35
23
oldWeight := weights at: i.
36
24
newWeight := self call: (MFTWeightDialog edit: oldWeight).
37
Removed:
(newWeight value isNotNil and: [ (newWeight value = 0) not ])
38
Removed:
ifTrue: [ self session user workouts at: i put: newWeight ]
25
Added:
newWeight ifNil: [ ^ nil ].
26
Added:
newWeight value ~~ 0 ifTrue: [
27
Added:
self session user weights at: i put: newWeight ]
39
28
]
40
29
41
30
{ #category : #initialization }
@@ -48,8 +37,7 @@
48
37
{ #category : #'as yet unclassified' }
49
38
MFTWeightsListPage >> loadUserData [
50
39
51
Removed:
self session user weights:
52
Removed:
(self session db selectWeightsWhereUser: self session user)
40
Added:
self session loadUserWeights.
53
41
]
54
42
55
43
{ #category : #'as yet unclassified' }