14
14
class StatsHandler (BaseHandler ):
15
15
@execute_as_transaction
16
16
def _get_stats (self , callback ):
17
- # initializing values
18
- number_studies , number_of_samples , num_users , time = '' , '' , '' , ''
19
- lat_longs , num_studies_ebi , num_samples_ebi , img = '' , '' , '' , ''
20
- number_samples_ebi_prep = ''
21
-
17
+ stats = {}
22
18
# checking values from redis
23
19
portal = qiita_config .portal
24
- keys = [
25
- 'number_studies' , 'number_of_samples' , 'num_users' , 'lat_longs' ,
26
- 'num_studies_ebi' , 'num_samples_ebi' , 'number_samples_ebi_prep' ,
27
- 'img' , 'time' ]
28
-
29
- for k in keys :
20
+ vals = [
21
+ ('number_studies' , r_client .hgetall ),
22
+ ('number_of_samples' , r_client .hgetall ),
23
+ ('num_users' , r_client .get ),
24
+ ('lat_longs' , r_client .get ),
25
+ ('num_studies_ebi' , r_client .get ),
26
+ ('num_samples_ebi' , r_client .get ),
27
+ ('number_samples_ebi_prep' , r_client .get ),
28
+ ('img' , r_client .get ),
29
+ ('time' , r_client .get )]
30
+ for k , f in vals :
30
31
redis_key = '%s:stats:%s' % (portal , k )
31
- # retrieving dicts
32
- if k == 'number_studies' :
33
- number_studies = r_client .hgetall (redis_key )
34
- elif k == 'number_of_samples' :
35
- number_of_samples = r_client .hgetall (redis_key )
36
- # single values
37
- elif k == 'num_users' :
38
- num_users = r_client .get (redis_key )
39
- elif k == 'num_studies_ebi' :
40
- num_studies_ebi = r_client .get (redis_key )
41
- elif k == 'num_samples_ebi' :
42
- num_samples_ebi = r_client .get (redis_key )
43
- elif k == 'num_samples_ebi' :
44
- num_samples_ebi = r_client .get (redis_key )
45
- elif k == 'number_samples_ebi_prep' :
46
- number_samples_ebi_prep = r_client .get (redis_key )
47
- elif k == 'img' :
48
- img = r_client .get (redis_key )
49
- elif k == 'time' :
50
- time = r_client .get (redis_key )
51
- # storing tuples and single values
52
- elif k == 'lat_longs' :
53
- lat_longs = eval (r_client .get (redis_key ))
32
+ stats [k ] = f (redis_key )
54
33
55
- callback ([number_studies , number_of_samples , num_users , lat_longs ,
56
- num_studies_ebi , num_samples_ebi , number_samples_ebi_prep ,
57
- img , time ])
34
+ callback (stats )
58
35
59
36
@coroutine
60
37
@execute_as_transaction
61
38
def get (self ):
62
- number_studies , number_of_samples , num_users , lat_longs , \
63
- num_studies_ebi , num_samples_ebi , number_samples_ebi_prep , \
64
- img , time = yield Task (self ._get_stats )
39
+ stats = yield Task (self ._get_stats )
65
40
66
41
# Pull a random public study from the database
67
42
public_studies = Study .get_by_status ('public' )
@@ -77,12 +52,14 @@ def get(self):
77
52
random_study_id = study .id
78
53
79
54
self .render ('stats.html' ,
80
- number_studies = number_studies ,
81
- number_of_samples = number_of_samples , num_users = num_users ,
82
- lat_longs = lat_longs , num_studies_ebi = num_studies_ebi ,
83
- num_samples_ebi = num_samples_ebi ,
84
- number_samples_ebi_prep = number_samples_ebi_prep ,
85
- img = img , time = time ,
55
+ number_studies = stats ['number_studies' ],
56
+ number_of_samples = stats ['number_of_samples' ],
57
+ num_users = stats ['num_users' ],
58
+ lat_longs = eval (stats ['lat_longs' ]),
59
+ num_studies_ebi = stats ['num_studies_ebi' ],
60
+ num_samples_ebi = stats ['num_samples_ebi' ],
61
+ number_samples_ebi_prep = stats ['number_samples_ebi_prep' ],
62
+ img = stats ['img' ], time = stats ['time' ],
86
63
random_study_info = random_study_info ,
87
64
random_study_title = random_study_title ,
88
65
random_study_id = random_study_id )
0 commit comments