@@ -22,20 +22,20 @@ |
||
22 | 22 | |
23 | 23 | // then populate the columns |
24 | 24 | $query = (new Query())->from('user_behavior_link'); |
25 | - foreach($query->batch() as $rows) { |
|
26 | - foreach($rows as $row) { |
|
25 | + foreach ($query->batch() as $rows) { |
|
26 | + foreach ($rows as $row) { |
|
27 | 27 | $bhvr = Behavior::getBehavior('id', $row['behavior_id']); |
28 | - if($bhvr) { |
|
28 | + if ($bhvr) { |
|
29 | 29 | $this->update('{{%user_behavior_link}}', ['category_id' => $bhvr['category_id']], ['id' => $row['id']]); |
30 | 30 | } |
31 | 31 | } |
32 | 32 | } |
33 | 33 | |
34 | 34 | $query = (new Query())->from('question'); |
35 | - foreach($query->batch() as $rows) { |
|
36 | - foreach($rows as $row) { |
|
35 | + foreach ($query->batch() as $rows) { |
|
36 | + foreach ($rows as $row) { |
|
37 | 37 | $bhvr = Behavior::getBehavior('id', $row['behavior_id']); |
38 | - if($bhvr) { |
|
38 | + if ($bhvr) { |
|
39 | 39 | $this->update('{{%question}}', ['category_id' => $bhvr['category_id']], ['id' => $row['id']]); |
40 | 40 | } |
41 | 41 | } |
@@ -95,8 +95,8 @@ discard block |
||
95 | 95 | parent::setUp(); |
96 | 96 | } |
97 | 97 | |
98 | - public function testAttributeLabels() |
|
99 | - { |
|
98 | + public function testAttributeLabels() |
|
99 | + { |
|
100 | 100 | $this->specify('attributeLabels should function properly', function () { |
101 | 101 | $model = $this->container->get('\site\models\CheckinForm'); |
102 | 102 | expect('attributeLabels should be correct', $this->assertEquals([ |
@@ -116,7 +116,7 @@ discard block |
||
116 | 116 | $this->specify('setBehaviors should function properly', function () { |
117 | 117 | $model = $this->container->get('\site\models\CheckinForm'); |
118 | 118 | |
119 | - $model->setBehaviors($this->behaviors); |
|
119 | + $model->setBehaviors($this->behaviors); |
|
120 | 120 | expect('behaviors1 should be correct', $this->assertEquals([ 0 => 7 ], $model->behaviors1)); |
121 | 121 | expect('behaviors2 should be correct', $this->assertEquals([ 0 => 12, 1 => 13, 2 => 17, 3 => 18 ], $model->behaviors2)); |
122 | 122 | expect('behaviors3 should be correct', $this->assertEquals([ 0 => 28, 1 => 38, 2 => 46 ], $model->behaviors3)); |
@@ -125,7 +125,7 @@ discard block |
||
125 | 125 | expect('behaviors6 should be correct', $this->assertEquals([ 0 => 104 ], $model->behaviors6)); |
126 | 126 | expect('behaviors7 should be correct', $this->assertEquals([ 0 => 128 ], $model->behaviors7)); |
127 | 127 | |
128 | - $model->setBehaviors($this->behaviors); |
|
128 | + $model->setBehaviors($this->behaviors); |
|
129 | 129 | expect('setBehaviors should not append behaviors to existing ones', $this->assertEquals([ 0 => 7 ], $model->behaviors1)); |
130 | 130 | expect('setBehaviors should not append behaviors to existing ones', $this->assertEquals([ 0 => 12, 1 => 13, 2 => 17, 3 => 18 ], $model->behaviors2)); |
131 | 131 | expect('setBehaviors should not append behaviors to existing ones', $this->assertEquals([ 0 => 28, 1 => 38, 2 => 46 ], $model->behaviors3)); |
@@ -136,19 +136,19 @@ discard block |
||
136 | 136 | }); |
137 | 137 | } |
138 | 138 | |
139 | - public function testValidateBehaviors() |
|
140 | - { |
|
139 | + public function testValidateBehaviors() |
|
140 | + { |
|
141 | 141 | $this->specify('validateBehaviors should function properly', function () { |
142 | 142 | $model = $this->container->get('\site\models\CheckinForm'); |
143 | - $model->setBehaviors($this->behaviors); |
|
143 | + $model->setBehaviors($this->behaviors); |
|
144 | 144 | expect('validation should be good', $this->assertTrue($model->validate())); |
145 | 145 | |
146 | 146 | $model->behaviors1[0] = 'bad'; |
147 | 147 | expect('validation should be bad', $this->assertFalse($model->validate())); |
148 | 148 | }); |
149 | - } |
|
149 | + } |
|
150 | 150 | |
151 | - public function testCompileBehaviors() |
|
151 | + public function testCompileBehaviors() |
|
152 | 152 | { |
153 | 153 | $model = $this->container->get('\site\models\CheckinForm'); |
154 | 154 | $model->setBehaviors($this->behaviors); |
@@ -211,6 +211,6 @@ discard block |
||
211 | 211 | $expected_behaviors = $base_behaviors; |
212 | 212 | $expected_behaviors[7] += $other_behaviors; |
213 | 213 | |
214 | - expect('mergeWithDefault should return the given behaviors merged in with the base behaviors', $this->assertEquals($base_behaviors, $model->mergeWithDefault($other_behaviors))); |
|
214 | + expect('mergeWithDefault should return the given behaviors merged in with the base behaviors', $this->assertEquals($base_behaviors, $model->mergeWithDefault($other_behaviors))); |
|
215 | 215 | } |
216 | 216 | } |
@@ -89,7 +89,7 @@ discard block |
||
89 | 89 | protected function setUp() { |
90 | 90 | $this->container = new \yii\di\Container; |
91 | 91 | $this->container->set('common\interfaces\UserBehaviorInterface', '\site\tests\_support\MockUserBehavior'); |
92 | - $this->container->set('common\interfaces\TimeInterface', function () { |
|
92 | + $this->container->set('common\interfaces\TimeInterface', function() { |
|
93 | 93 | return new \common\components\Time('America/Los_Angeles'); |
94 | 94 | }); |
95 | 95 | parent::setUp(); |
@@ -97,7 +97,7 @@ discard block |
||
97 | 97 | |
98 | 98 | public function testAttributeLabels() |
99 | 99 | { |
100 | - $this->specify('attributeLabels should function properly', function () { |
|
100 | + $this->specify('attributeLabels should function properly', function() { |
|
101 | 101 | $model = $this->container->get('\site\models\CheckinForm'); |
102 | 102 | expect('attributeLabels should be correct', $this->assertEquals([ |
103 | 103 | 'behaviors1' => 'Restoration', |
@@ -113,32 +113,32 @@ discard block |
||
113 | 113 | |
114 | 114 | public function testSetBehaviors() |
115 | 115 | { |
116 | - $this->specify('setBehaviors should function properly', function () { |
|
116 | + $this->specify('setBehaviors should function properly', function() { |
|
117 | 117 | $model = $this->container->get('\site\models\CheckinForm'); |
118 | 118 | |
119 | 119 | $model->setBehaviors($this->behaviors); |
120 | - expect('behaviors1 should be correct', $this->assertEquals([ 0 => 7 ], $model->behaviors1)); |
|
121 | - expect('behaviors2 should be correct', $this->assertEquals([ 0 => 12, 1 => 13, 2 => 17, 3 => 18 ], $model->behaviors2)); |
|
122 | - expect('behaviors3 should be correct', $this->assertEquals([ 0 => 28, 1 => 38, 2 => 46 ], $model->behaviors3)); |
|
123 | - expect('behaviors4 should be correct', $this->assertEquals([ 0 => 47, 1 => 56, 2 => 62 ], $model->behaviors4)); |
|
124 | - expect('behaviors5 should be correct', $this->assertEquals([ 0 => 78, 1 => 79 ], $model->behaviors5)); |
|
125 | - expect('behaviors6 should be correct', $this->assertEquals([ 0 => 104 ], $model->behaviors6)); |
|
126 | - expect('behaviors7 should be correct', $this->assertEquals([ 0 => 128 ], $model->behaviors7)); |
|
120 | + expect('behaviors1 should be correct', $this->assertEquals([0 => 7], $model->behaviors1)); |
|
121 | + expect('behaviors2 should be correct', $this->assertEquals([0 => 12, 1 => 13, 2 => 17, 3 => 18], $model->behaviors2)); |
|
122 | + expect('behaviors3 should be correct', $this->assertEquals([0 => 28, 1 => 38, 2 => 46], $model->behaviors3)); |
|
123 | + expect('behaviors4 should be correct', $this->assertEquals([0 => 47, 1 => 56, 2 => 62], $model->behaviors4)); |
|
124 | + expect('behaviors5 should be correct', $this->assertEquals([0 => 78, 1 => 79], $model->behaviors5)); |
|
125 | + expect('behaviors6 should be correct', $this->assertEquals([0 => 104], $model->behaviors6)); |
|
126 | + expect('behaviors7 should be correct', $this->assertEquals([0 => 128], $model->behaviors7)); |
|
127 | 127 | |
128 | 128 | $model->setBehaviors($this->behaviors); |
129 | - expect('setBehaviors should not append behaviors to existing ones', $this->assertEquals([ 0 => 7 ], $model->behaviors1)); |
|
130 | - expect('setBehaviors should not append behaviors to existing ones', $this->assertEquals([ 0 => 12, 1 => 13, 2 => 17, 3 => 18 ], $model->behaviors2)); |
|
131 | - expect('setBehaviors should not append behaviors to existing ones', $this->assertEquals([ 0 => 28, 1 => 38, 2 => 46 ], $model->behaviors3)); |
|
132 | - expect('setBehaviors should not append behaviors to existing ones', $this->assertEquals([ 0 => 47, 1 => 56, 2 => 62 ], $model->behaviors4)); |
|
133 | - expect('setBehaviors should not append behaviors to existing ones', $this->assertEquals([ 0 => 78, 1 => 79 ], $model->behaviors5)); |
|
134 | - expect('setBehaviors should not append behaviors to existing ones', $this->assertEquals([ 0 => 104 ], $model->behaviors6)); |
|
135 | - expect('setBehaviors should not append behaviors to existing ones', $this->assertEquals([ 0 => 128 ], $model->behaviors7)); |
|
129 | + expect('setBehaviors should not append behaviors to existing ones', $this->assertEquals([0 => 7], $model->behaviors1)); |
|
130 | + expect('setBehaviors should not append behaviors to existing ones', $this->assertEquals([0 => 12, 1 => 13, 2 => 17, 3 => 18], $model->behaviors2)); |
|
131 | + expect('setBehaviors should not append behaviors to existing ones', $this->assertEquals([0 => 28, 1 => 38, 2 => 46], $model->behaviors3)); |
|
132 | + expect('setBehaviors should not append behaviors to existing ones', $this->assertEquals([0 => 47, 1 => 56, 2 => 62], $model->behaviors4)); |
|
133 | + expect('setBehaviors should not append behaviors to existing ones', $this->assertEquals([0 => 78, 1 => 79], $model->behaviors5)); |
|
134 | + expect('setBehaviors should not append behaviors to existing ones', $this->assertEquals([0 => 104], $model->behaviors6)); |
|
135 | + expect('setBehaviors should not append behaviors to existing ones', $this->assertEquals([0 => 128], $model->behaviors7)); |
|
136 | 136 | }); |
137 | 137 | } |
138 | 138 | |
139 | 139 | public function testValidateBehaviors() |
140 | 140 | { |
141 | - $this->specify('validateBehaviors should function properly', function () { |
|
141 | + $this->specify('validateBehaviors should function properly', function() { |
|
142 | 142 | $model = $this->container->get('\site\models\CheckinForm'); |
143 | 143 | $model->setBehaviors($this->behaviors); |
144 | 144 | expect('validation should be good', $this->assertTrue($model->validate())); |
@@ -125,14 +125,14 @@ discard block |
||
125 | 125 | <th style="Margin:0;color:#0a0a0a;font-family:Arial,Verdana,Helvetica,sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;text-align:left"> |
126 | 126 | |
127 | 127 | <?php |
128 | -if($questions) { |
|
129 | - foreach($questions as $behavior_id => $behavior_questions) { |
|
128 | +if ($questions) { |
|
129 | + foreach ($questions as $behavior_id => $behavior_questions) { |
|
130 | 130 | ?> |
131 | 131 | |
132 | 132 | <h4 style="Margin:0;Margin-bottom:10px;color:#37b98f;font-family:Arial,Verdana,Helvetica,sans-serif;font-size:24px;font-weight:400;line-height:1.3;margin:0;margin-bottom:5px;padding:0 8px;text-align:left;word-wrap:normal"> <?= $behavior_questions['question']['title'] ?> </h4> |
133 | 133 | |
134 | 134 | <?php |
135 | - foreach($behavior_questions['answers'] as $key => $question) { ?> |
|
135 | + foreach ($behavior_questions['answers'] as $key => $question) { ?> |
|
136 | 136 | <p style="Margin:0;Margin-bottom:10px;color:#0a0a0a;font-family:Arial,Verdana,Helvetica,sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;margin-bottom:10px;padding:0 8px 4px 8px;text-align:left"><strong><?=$question['title']?></strong> <?=$question['answer']?></p> |
137 | 137 | <?php |
138 | 138 | } |
@@ -189,12 +189,12 @@ discard block |
||
189 | 189 | <th style="Margin:0;color:#0a0a0a;font-family:Arial,Verdana,Helvetica,sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;text-align:left"> |
190 | 190 | |
191 | 191 | <?php |
192 | -if($user_behaviors) { |
|
193 | - foreach($user_behaviors as $cat_key => $behaviors) { ?> |
|
192 | +if ($user_behaviors) { |
|
193 | + foreach ($user_behaviors as $cat_key => $behaviors) { ?> |
|
194 | 194 | <p style="Margin:0;Margin-bottom:10px;color:#0a0a0a;font-family:Arial,Verdana,Helvetica,sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;margin-bottom:10px;padding:0 8px 4px 8px;text-align:left"> |
195 | 195 | <strong style="color:#37b98f"><?= $categories[$cat_key] ?></strong> |
196 | 196 | <?php |
197 | - foreach($behaviors as $behavior) { ?> |
|
197 | + foreach ($behaviors as $behavior) { ?> |
|
198 | 198 | <br><?= $behavior['name'] ?> |
199 | 199 | <?php |
200 | 200 | } |
@@ -86,7 +86,7 @@ discard block |
||
86 | 86 | ->groupBy('date, user_id') |
87 | 87 | ->having('user_id = :user_id'); |
88 | 88 | $temp_dates = $query->all(); |
89 | - foreach($temp_dates as $temp_date) { |
|
89 | + foreach ($temp_dates as $temp_date) { |
|
90 | 90 | $past_checkin_dates[] = $this->time->convertUTCToLocal($temp_date['date']); |
91 | 91 | } |
92 | 92 | |
@@ -115,12 +115,12 @@ discard block |
||
115 | 115 | |
116 | 116 | public function getCheckinBreakdown(int $period = 30) { |
117 | 117 | $datetimes = $this->time->getDateTimesInPeriod($period); |
118 | - $key = "checkins_".Yii::$app->user->id."_{$period}_".$this->time->getLocalDate(); |
|
118 | + $key = "checkins_" . Yii::$app->user->id . "_{$period}_" . $this->time->getLocalDate(); |
|
119 | 119 | $checkins = Yii::$app->cache->get($key); |
120 | 120 | |
121 | - if($checkins === false) { |
|
121 | + if ($checkins === false) { |
|
122 | 122 | $checkins = []; |
123 | - foreach($datetimes as $datetime) { |
|
123 | + foreach ($datetimes as $datetime) { |
|
124 | 124 | $behaviors = self::decorate($this->getBehaviorsWithCounts($datetime)); |
125 | 125 | $checkins[$datetime->format('Y-m-d')] = $this->getBehaviorsByCategory($behaviors); |
126 | 126 | } |
@@ -146,7 +146,7 @@ discard block |
||
146 | 146 | public function getBehaviorsByCategory(array $decorated_behaviors) { |
147 | 147 | $arr = array_reduce($decorated_behaviors, function($acc, $row) { |
148 | 148 | $cat_id = $row['category_id']; |
149 | - if(array_key_exists($cat_id, $acc)) { |
|
149 | + if (array_key_exists($cat_id, $acc)) { |
|
150 | 150 | $acc[$cat_id]['count'] += $row['count']; |
151 | 151 | } else { |
152 | 152 | $acc[$cat_id] = [ |
@@ -178,11 +178,11 @@ discard block |
||
178 | 178 | ->having('user_id = :user_id') |
179 | 179 | ->orderBy('count DESC'); |
180 | 180 | |
181 | - if($limit instanceof \DateTime) { |
|
181 | + if ($limit instanceof \DateTime) { |
|
182 | 182 | list($start, $end) = $this->time->getUTCBookends($limit->format('Y-m-d')); |
183 | 183 | $query->params += [':start_date' => $start, ':end_date' => $end]; |
184 | 184 | $query->where('user_id=:user_id AND date > :start_date AND date <= :end_date'); |
185 | - } else if(is_int($limit)) { |
|
185 | + } else if (is_int($limit)) { |
|
186 | 186 | $query->limit($limit); |
187 | 187 | } |
188 | 188 | return $query->all(); |
@@ -196,7 +196,7 @@ discard block |
||
196 | 196 | * @return array |
197 | 197 | */ |
198 | 198 | public function getByDate(int $user_id, $local_date = null) { |
199 | - if(is_null($local_date)) $local_date = $this->time->getLocalDate(); |
|
199 | + if (is_null($local_date)) $local_date = $this->time->getLocalDate(); |
|
200 | 200 | |
201 | 201 | $behaviors = $this->getBehaviorData($user_id, $local_date); |
202 | 202 | $behaviors = self::decorate($behaviors); |
@@ -209,12 +209,12 @@ discard block |
||
209 | 209 | * @return an array of decorated UserBehaviors, each with an added Category and Behavior |
210 | 210 | */ |
211 | 211 | public static function decorate(array $uo) { |
212 | - foreach($uo as &$o) { |
|
212 | + foreach ($uo as &$o) { |
|
213 | 213 | $behavior = \common\models\Behavior::getBehavior('id', $o['behavior_id']); |
214 | 214 | $category = \common\models\Category::getCategory('id', $o['category_id']); |
215 | 215 | // if this behavior does not have a valid behavior or category, something |
216 | 216 | // is weird and we don't want to do this halfway. |
217 | - if($behavior && $category) { |
|
217 | + if ($behavior && $category) { |
|
218 | 218 | $o['behavior'] = $behavior; |
219 | 219 | $o['category'] = $category; |
220 | 220 | } |
@@ -241,10 +241,10 @@ discard block |
||
241 | 241 | |
242 | 242 | // TODO: this should probably be a private method...but unit testing is hard |
243 | 243 | public function parseBehaviorData($behaviors) { |
244 | - if(!$behaviors) return []; |
|
244 | + if (!$behaviors) return []; |
|
245 | 245 | |
246 | 246 | $bhvrs_by_cat = []; |
247 | - foreach($behaviors as $behavior) { |
|
247 | + foreach ($behaviors as $behavior) { |
|
248 | 248 | $indx = $behavior['category_id']; |
249 | 249 | |
250 | 250 | $bhvrs_by_cat[$indx][$behavior['behavior']['name']] = [ |
@@ -196,7 +196,9 @@ discard block |
||
196 | 196 | * @return array |
197 | 197 | */ |
198 | 198 | public function getByDate(int $user_id, $local_date = null) { |
199 | - if(is_null($local_date)) $local_date = $this->time->getLocalDate(); |
|
199 | + if(is_null($local_date)) { |
|
200 | + $local_date = $this->time->getLocalDate(); |
|
201 | + } |
|
200 | 202 | |
201 | 203 | $behaviors = $this->getBehaviorData($user_id, $local_date); |
202 | 204 | $behaviors = self::decorate($behaviors); |
@@ -241,7 +243,9 @@ discard block |
||
241 | 243 | |
242 | 244 | // TODO: this should probably be a private method...but unit testing is hard |
243 | 245 | public function parseBehaviorData($behaviors) { |
244 | - if(!$behaviors) return []; |
|
246 | + if(!$behaviors) { |
|
247 | + return []; |
|
248 | + } |
|
245 | 249 | |
246 | 250 | $bhvrs_by_cat = []; |
247 | 251 | foreach($behaviors as $behavior) { |