Commit b5cf0a77ef65e16519b1d3d645f1747f0a837a6f
1 parent
ed5efbed
Exists in
master
and in
2 other branches
modified month selector, now it gets the last twelve months independent of the y…
…ear and all their data correctly
Showing
4 changed files
with
53 additions
and
23 deletions
Show diff stats
analytics/views.py
@@ -52,13 +52,17 @@ def get_most_used_tags(): | @@ -52,13 +52,17 @@ def get_most_used_tags(): | ||
52 | 52 | ||
53 | def most_active_users_in_a_month(request): | 53 | def most_active_users_in_a_month(request): |
54 | params = request.GET | 54 | params = request.GET |
55 | - days = get_days_of_the_month(params['month']) | 55 | + month = params['month'] |
56 | + year = params.get('year') | ||
57 | + days = get_days_of_the_month(month, year) | ||
58 | + if year is None: | ||
59 | + year = date.today().year | ||
56 | mappings = {_('January'): 1, _('February'): 2, _('March'): 3, _('April'): 4, _('May'): 5, _('June'): 6, _('July'): 7 | 60 | mappings = {_('January'): 1, _('February'): 2, _('March'): 3, _('April'): 4, _('May'): 5, _('June'): 6, _('July'): 7 |
57 | , _('August'): 8, _('September'): 9, _('October'): 10, _('November'): 11, _('December'): 12} | 61 | , _('August'): 8, _('September'): 9, _('October'): 10, _('November'): 11, _('December'): 12} |
58 | 62 | ||
59 | days_list = [] | 63 | days_list = [] |
60 | for day in days: | 64 | for day in days: |
61 | - built_date = date(date.today().year, mappings[params['month']], day) | 65 | + built_date = date(int(year), mappings[_(month)], day) |
62 | days_list.append(built_date) | 66 | days_list.append(built_date) |
63 | data = activity_in_timestamp(days_list) | 67 | data = activity_in_timestamp(days_list) |
64 | data = [{"day": day.day, "count": day_count} for day, day_count in data.items()] | 68 | data = [{"day": day.day, "count": day_count} for day, day_count in data.items()] |
@@ -72,6 +76,26 @@ def activity_in_timestamp(days): | @@ -72,6 +76,26 @@ def activity_in_timestamp(days): | ||
72 | data[day] = day_count | 76 | data[day] = day_count |
73 | 77 | ||
74 | return data | 78 | return data |
79 | + | ||
80 | + | ||
81 | + | ||
82 | +def get_days_of_the_month(month, year = date.today().year): | ||
83 | + | ||
84 | + #get current year | ||
85 | + if year is None: | ||
86 | + year = date.today().year | ||
87 | + mappings = {_('January'): 1, _('February'): 2, _('March'): 3, _('April'): 4, _('May'): 5, _('June'): 6, _('July'): 7 | ||
88 | + , _('August'): 8, _('September'): 9, _('October'): 10, _('November'): 11, _('December'): 12} | ||
89 | + | ||
90 | + c = calendar.Calendar() | ||
91 | + days = c.itermonthdays(int(year), mappings[_(month)]) | ||
92 | + days_set = set() | ||
93 | + for day in days: | ||
94 | + days_set.add(day) | ||
95 | + | ||
96 | + days_set.remove(0) #because 0 is not aan actual day from that month | ||
97 | + return days_set | ||
98 | + | ||
75 | """ | 99 | """ |
76 | Subject view that returns a list of the most used subjects """ | 100 | Subject view that returns a list of the most used subjects """ |
77 | 101 | ||
@@ -157,22 +181,6 @@ def most_active_users(request): | @@ -157,22 +181,6 @@ def most_active_users(request): | ||
157 | 181 | ||
158 | 182 | ||
159 | 183 | ||
160 | -def get_days_of_the_month(month): | ||
161 | - | ||
162 | - #get current year | ||
163 | - year = date.today().year | ||
164 | - mappings = {_('January'): 1, _('February'): 2, _('March'): 3, _('April'): 4, _('May'): 5, _('June'): 6, _('July'): 7 | ||
165 | - , _('August'): 8, _('September'): 9, _('October'): 10, _('November'): 11, _('December'): 12} | ||
166 | - | ||
167 | - c = calendar.Calendar() | ||
168 | - days = c.itermonthdays(year, mappings[month]) | ||
169 | - days_set = set() | ||
170 | - for day in days: | ||
171 | - days_set.add(day) | ||
172 | - | ||
173 | - days_set.remove(0) #because 0 is not aan actual day from that month | ||
174 | - return days_set | ||
175 | - | ||
176 | 184 | ||
177 | 185 | ||
178 | def get_days_of_the_week_log(request): | 186 | def get_days_of_the_week_log(request): |
dashboards/templates/dashboards/category.html
@@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
3 | {% load static i18n pagination %} | 3 | {% load static i18n pagination %} |
4 | {% load django_bootstrap_breadcrumbs %} | 4 | {% load django_bootstrap_breadcrumbs %} |
5 | {% block style %} | 5 | {% block style %} |
6 | - <link rel="stylesheet" type="text/css" href="{% static 'analytics/general.css' %}"> | 6 | + <link rel="stylesheet" type="text/css" href="{% static 'dashboards/css/general.css' %}"> |
7 | <link rel="stylesheet" type="text/css" href="{% static 'dashboards/css/dashboards_category.css' %}"> | 7 | <link rel="stylesheet" type="text/css" href="{% static 'dashboards/css/dashboards_category.css' %}"> |
8 | {% endblock style %} | 8 | {% endblock style %} |
9 | 9 |
dashboards/templates/dashboards/general.html
@@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
3 | {% load static i18n pagination %} | 3 | {% load static i18n pagination %} |
4 | {% load django_bootstrap_breadcrumbs %} | 4 | {% load django_bootstrap_breadcrumbs %} |
5 | {% block style %} | 5 | {% block style %} |
6 | - <link rel="stylesheet" type="text/css" href="{% static 'analytics/general.css' %}"> | 6 | + <link rel="stylesheet" type="text/css" href="{% static 'dashboards/css/general.css' %}"> |
7 | {% endblock style %} | 7 | {% endblock style %} |
8 | 8 | ||
9 | {% block javascript %} | 9 | {% block javascript %} |
@@ -75,14 +75,17 @@ | @@ -75,14 +75,17 @@ | ||
75 | 75 | ||
76 | <div class="selector" data-url="categories"> | 76 | <div class="selector" data-url="categories"> |
77 | <p> {% trans "Categories" %} </p> | 77 | <p> {% trans "Categories" %} </p> |
78 | + <i class="fa fa-2x pull-right fa-angle-right" aria-hidden="true" style=""></i> | ||
78 | </div> | 79 | </div> |
79 | 80 | ||
80 | <div class="selector" data-url="subjects"> | 81 | <div class="selector" data-url="subjects"> |
81 | <p> {% trans "Subjects" %} </p> | 82 | <p> {% trans "Subjects" %} </p> |
83 | + <i class="fa fa-2x pull-right fa-angle-right" aria-hidden="true" style=""></i> | ||
82 | </div> | 84 | </div> |
83 | 85 | ||
84 | <div class="selector" data-url="resources"> | 86 | <div class="selector" data-url="resources"> |
85 | <p> {% trans "Resource" %} </p> | 87 | <p> {% trans "Resource" %} </p> |
88 | + <i class="fa fa-2x pull-right fa-angle-right" aria-hidden="true" style=""></i> | ||
86 | </div> | 89 | </div> |
87 | 90 | ||
88 | </div> | 91 | </div> |
dashboards/views.py
@@ -32,12 +32,31 @@ class GeneralView(generic.TemplateView): | @@ -32,12 +32,31 @@ class GeneralView(generic.TemplateView): | ||
32 | 32 | ||
33 | def get_context_data(self, **kwargs): | 33 | def get_context_data(self, **kwargs): |
34 | context = {} | 34 | context = {} |
35 | - | ||
36 | - context['months'] = [_('January'), _('February'), _('March'), _('April'), _('May'), _('June'), _('July'), _('August'), | ||
37 | - _('September'), _('October'), _('November'), _('December')] | 35 | + |
36 | + | ||
37 | + context['months'] = self.get_last_twelve_months() | ||
38 | 38 | ||
39 | return context | 39 | return context |
40 | 40 | ||
41 | + def get_last_twelve_months(self): | ||
42 | + today = date.today() | ||
43 | + months = [] | ||
44 | + month_mappings = { 1: _('January'), 2: _('February'), 3: _('March'), 4: _('April'), 5: _('May'), 6: _('June'), 7: _('July') | ||
45 | + , 8: _('August'), 9: _('September'), 10: _('October'), 11: _('November'), 12: _('December')} | ||
46 | + date_used = today #the date used for solving the inital month problem | ||
47 | + offset = 0 #offset is the amount of weeks I had to shift so I could change the month if 4 weeks weren't enough | ||
48 | + for i in range(12): | ||
49 | + | ||
50 | + operation_date = today - timedelta(weeks= (4*i + offset)) | ||
51 | + while date_used.month == operation_date.month: | ||
52 | + offset += 2 | ||
53 | + operation_date = today - timedelta(weeks= (4*i + offset)) | ||
54 | + | ||
55 | + months.append(month_mappings[date_used.month] + '/' + str(date_used.year)) | ||
56 | + date_used = operation_date | ||
57 | + return months | ||
58 | + | ||
59 | + | ||
41 | class CategoryView(generic.TemplateView): | 60 | class CategoryView(generic.TemplateView): |
42 | template_name = "dashboards/category.html" | 61 | template_name = "dashboards/category.html" |
43 | 62 |