Commit fb729f14fda54d96d51be2c8a00fbd0245fc33eb
1 parent
1651dd2d
Exists in
master
and in
3 other branches
Adding goals reports log
Showing
5 changed files
with
208 additions
and
2 deletions
Show diff stats
amadeus/static/js/goals_reports.js
... | ... | @@ -40,6 +40,60 @@ function getAnswered() { |
40 | 40 | }); |
41 | 41 | } |
42 | 42 | |
43 | + | |
44 | + var url = container.find('.answ_log_url').val(); | |
45 | + var log_input = container.find('.answ_log_id'); | |
46 | + | |
47 | + if (typeof(url) != 'undefined') { | |
48 | + $.ajax({ | |
49 | + url: url, | |
50 | + data: {'action': 'open'}, | |
51 | + dataType: 'json', | |
52 | + success: function (data) { | |
53 | + log_input.val(data.log_id); | |
54 | + }, | |
55 | + error: function (data) { | |
56 | + console.log(data); | |
57 | + } | |
58 | + }); | |
59 | + } | |
60 | + | |
61 | + var unan_url = container.find('.unan_log_url').val(); | |
62 | + var unan_log_id = container.find('.unan_log_id').val(); | |
63 | + | |
64 | + if (typeof(unan_url) != 'undefined' && unan_log_id != "") { | |
65 | + $.ajax({ | |
66 | + url: unan_url, | |
67 | + data: {'action': 'close', 'log_id': unan_log_id}, | |
68 | + dataType: 'json', | |
69 | + success: function (data) { | |
70 | + console.log(data.message); | |
71 | + container.find('.unan_log_id').val(""); | |
72 | + }, | |
73 | + error: function (data) { | |
74 | + console.log(data); | |
75 | + } | |
76 | + }); | |
77 | + } | |
78 | + | |
79 | + var hist_url = container.find('.hist_log_url').val(); | |
80 | + var hist_log_id = container.find('.hist_log_id').val(); | |
81 | + | |
82 | + if (typeof(hist_url) != 'undefined' && hist_log_id != "") { | |
83 | + $.ajax({ | |
84 | + url: hist_url, | |
85 | + data: {'action': 'close', 'log_id': hist_log_id}, | |
86 | + dataType: 'json', | |
87 | + success: function (data) { | |
88 | + console.log(data.message); | |
89 | + container.find('.hist_log_id').val(""); | |
90 | + }, | |
91 | + error: function (data) { | |
92 | + console.log(data); | |
93 | + } | |
94 | + }); | |
95 | + } | |
96 | + | |
43 | 97 | container.find('.answered_link').addClass('active'); |
44 | 98 | container.find('.answered').show(); |
45 | 99 | |
... | ... | @@ -103,6 +157,59 @@ function getUnanswered() { |
103 | 157 | }); |
104 | 158 | } |
105 | 159 | |
160 | + var url = container.find('.answ_log_url').val(); | |
161 | + var log_id = container.find('.answ_log_id').val(); | |
162 | + | |
163 | + if (typeof(url) != 'undefined' && log_id != "") { | |
164 | + $.ajax({ | |
165 | + url: url, | |
166 | + data: {'action': 'close', 'log_id': log_id}, | |
167 | + dataType: 'json', | |
168 | + success: function (data) { | |
169 | + console.log(data.message); | |
170 | + container.find('.answ_log_id').val(""); | |
171 | + }, | |
172 | + error: function (data) { | |
173 | + console.log(data); | |
174 | + } | |
175 | + }); | |
176 | + } | |
177 | + | |
178 | + var unan_url = container.find('.unan_log_url').val(); | |
179 | + var unan_log_input = container.find('.unan_log_id'); | |
180 | + | |
181 | + if (typeof(unan_url) != 'undefined') { | |
182 | + $.ajax({ | |
183 | + url: unan_url, | |
184 | + data: {'action': 'open'}, | |
185 | + dataType: 'json', | |
186 | + success: function (data) { | |
187 | + unan_log_input.val(data.log_id); | |
188 | + }, | |
189 | + error: function (data) { | |
190 | + console.log(data); | |
191 | + } | |
192 | + }); | |
193 | + } | |
194 | + | |
195 | + var hist_url = container.find('.hist_log_url').val(); | |
196 | + var hist_log_id = container.find('.hist_log_id').val(); | |
197 | + | |
198 | + if (typeof(hist_url) != 'undefined' && hist_log_id != "") { | |
199 | + $.ajax({ | |
200 | + url: hist_url, | |
201 | + data: {'action': 'close', 'log_id': hist_log_id}, | |
202 | + dataType: 'json', | |
203 | + success: function (data) { | |
204 | + console.log(data.message); | |
205 | + container.find('.hist_log_id').val(""); | |
206 | + }, | |
207 | + error: function (data) { | |
208 | + console.log(data); | |
209 | + } | |
210 | + }); | |
211 | + } | |
212 | + | |
106 | 213 | container.find('.answered_link').removeClass('active'); |
107 | 214 | container.find('.answered').hide(); |
108 | 215 | |
... | ... | @@ -153,6 +260,60 @@ function getHistory() { |
153 | 260 | }); |
154 | 261 | } |
155 | 262 | |
263 | + var url = container.find('.answ_log_url').val(); | |
264 | + var log_id = container.find('.answ_log_id').val(); | |
265 | + | |
266 | + if (typeof(url) != 'undefined' && log_id != "") { | |
267 | + $.ajax({ | |
268 | + url: url, | |
269 | + data: {'action': 'close', 'log_id': log_id}, | |
270 | + dataType: 'json', | |
271 | + success: function (data) { | |
272 | + console.log(data.message); | |
273 | + container.find('.answ_log_id').val(""); | |
274 | + }, | |
275 | + error: function (data) { | |
276 | + console.log(data); | |
277 | + } | |
278 | + }); | |
279 | + } | |
280 | + | |
281 | + var unan_url = container.find('.unan_log_url').val(); | |
282 | + var unan_log_id = container.find('.unan_log_id').val(); | |
283 | + | |
284 | + if (typeof(unan_url) != 'undefined' && unan_log_id != "") { | |
285 | + $.ajax({ | |
286 | + url: unan_url, | |
287 | + data: {'action': 'close', 'log_id': unan_log_id}, | |
288 | + dataType: 'json', | |
289 | + success: function (data) { | |
290 | + console.log(data.message); | |
291 | + container.find('.unan_log_id').val(""); | |
292 | + }, | |
293 | + error: function (data) { | |
294 | + console.log(data); | |
295 | + } | |
296 | + | |
297 | + }); | |
298 | + } | |
299 | + | |
300 | + var hist_url = container.find('.hist_log_url').val(); | |
301 | + var hist_log_input = container.find('.hist_log_id'); | |
302 | + | |
303 | + if (typeof(hist_url) != 'undefined') { | |
304 | + $.ajax({ | |
305 | + url: hist_url, | |
306 | + data: {'action': 'open'}, | |
307 | + dataType: 'json', | |
308 | + success: function (data) { | |
309 | + hist_log_input.val(data.log_id); | |
310 | + }, | |
311 | + error: function (data) { | |
312 | + console.log(data); | |
313 | + } | |
314 | + }); | |
315 | + } | |
316 | + | |
156 | 317 | container.find('.answered_link').removeClass('active'); |
157 | 318 | container.find('.answered').hide(); |
158 | 319 | ... | ... |
amadeus/static/js/pendencies.js
... | ... | @@ -172,6 +172,7 @@ function getPendencies(panel_id) { |
172 | 172 | dataType: 'json', |
173 | 173 | success: function (data) { |
174 | 174 | console.log(data.message); |
175 | + list.parent().parent().find('.hist_log_id').val(""); | |
175 | 176 | }, |
176 | 177 | error: function (data) { |
177 | 178 | console.log(data); |
... | ... | @@ -244,6 +245,7 @@ function getHistory(panel_id) { |
244 | 245 | dataType: 'json', |
245 | 246 | success: function (data) { |
246 | 247 | console.log(data.message); |
248 | + container.find('.view_log_id').val(""); | |
247 | 249 | }, |
248 | 250 | error: function (data) { |
249 | 251 | console.log(data); | ... | ... |
goals/templates/goals/reports.html
... | ... | @@ -61,14 +61,23 @@ |
61 | 61 | </div> |
62 | 62 | |
63 | 63 | <div class="answered" data-url="{% url 'goals:answered_report' goal.slug %}"> |
64 | + <input type="hidden" class="answ_log_url" value="{% url 'goals:reports_log' goal.slug 'answered' %}" /> | |
65 | + <input type="hidden" class="answ_log_id" value="" /> | |
66 | + | |
64 | 67 | <div class="answered_data"></div> |
65 | 68 | </div> |
66 | 69 | |
67 | 70 | <div class="unanswered" data-url="{% url 'goals:unanswered_report' goal.slug %}"> |
71 | + <input type="hidden" class="unan_log_url" value="{% url 'goals:reports_log' goal.slug 'unanaswered' %}" /> | |
72 | + <input type="hidden" class="unan_log_id" value="" /> | |
73 | + | |
68 | 74 | <div class="unanswered_data"></div> |
69 | 75 | </div> |
70 | 76 | |
71 | 77 | <div class="history" data-url="{% url 'goals:history_report' goal.slug %}"> |
78 | + <input type="hidden" class="hist_log_url" value="{% url 'goals:reports_log' goal.slug 'history' %}" /> | |
79 | + <input type="hidden" class="hist_log_id" value="" /> | |
80 | + | |
72 | 81 | <div class="history_data"></div> |
73 | 82 | </div> |
74 | 83 | </div> | ... | ... |
goals/urls.py
... | ... | @@ -15,4 +15,5 @@ urlpatterns = [ |
15 | 15 | url(r'^answered_report/(?P<slug>[\w_-]+)/$', views.AnsweredReport.as_view(), name = 'answered_report'), |
16 | 16 | url(r'^unanswered_report/(?P<slug>[\w_-]+)/$', views.UnansweredReport.as_view(), name = 'unanswered_report'), |
17 | 17 | url(r'^history_report/(?P<slug>[\w_-]+)/$', views.HistoryReport.as_view(), name = 'history_report'), |
18 | + url(r'^view_log/(?P<goal>[\w_-]+)/(?P<report>[\w_-]+)/$', views.reports_log, name = 'reports_log'), | |
18 | 19 | ] | ... | ... |
goals/views.py
... | ... | @@ -5,6 +5,7 @@ from django.core.urlresolvers import reverse, reverse_lazy |
5 | 5 | from django.utils.translation import ugettext_lazy as _ |
6 | 6 | from django.contrib.auth.mixins import LoginRequiredMixin |
7 | 7 | from django.forms import formset_factory, modelformset_factory |
8 | +from django.http import JsonResponse | |
8 | 9 | |
9 | 10 | from log.models import Log |
10 | 11 | from log.mixins import LogMixin |
... | ... | @@ -155,7 +156,7 @@ class HistoryReport(LoginRequiredMixin, generic.ListView): |
155 | 156 | slug = self.kwargs.get('slug', '') |
156 | 157 | goal = get_object_or_404(Goals, slug = slug) |
157 | 158 | |
158 | - rows = Log.objects.filter(context__contains = {"goals_id": goal.id}) | |
159 | + rows = Log.objects.filter(context__contains = {"goals_id": goal.id}).exclude(action = 'view_reports') | |
159 | 160 | |
160 | 161 | return rows |
161 | 162 | |
... | ... | @@ -929,4 +930,36 @@ class DeleteView(LoginRequiredMixin, LogMixin, generic.DeleteView): |
929 | 930 | |
930 | 931 | super(DeleteView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) |
931 | 932 | |
932 | - return reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) | |
933 | 933 | \ No newline at end of file |
934 | + return reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) | |
935 | + | |
936 | +@log_decorator_ajax('resources', 'view_reports', 'goals') | |
937 | +def reports_log(request, goal, report): | |
938 | + action = request.GET.get('action') | |
939 | + | |
940 | + if action == 'open': | |
941 | + goals = get_object_or_404(Goals, slug = goal) | |
942 | + | |
943 | + log_context = {} | |
944 | + log_context['category_id'] = goals.topic.subject.category.id | |
945 | + log_context['category_name'] = goals.topic.subject.category.name | |
946 | + log_context['category_slug'] = goals.topic.subject.category.slug | |
947 | + log_context['subject_id'] = goals.topic.subject.id | |
948 | + log_context['subject_name'] = goals.topic.subject.name | |
949 | + log_context['subject_slug'] = goals.topic.subject.slug | |
950 | + log_context['topic_id'] = goals.topic.id | |
951 | + log_context['topic_name'] = goals.topic.name | |
952 | + log_context['topic_slug'] = goals.topic.slug | |
953 | + log_context['goals_id'] = goals.id | |
954 | + log_context['goals_name'] = goals.name | |
955 | + log_context['goals_slug'] = goals.slug | |
956 | + log_context['goals_report'] = report | |
957 | + log_context['timestamp_start'] = str(int(time.time())) | |
958 | + log_context['timestamp_end'] = '-1' | |
959 | + | |
960 | + request.log_context = log_context | |
961 | + | |
962 | + log_id = Log.objects.latest('id').id | |
963 | + | |
964 | + return JsonResponse({'message': 'ok', 'log_id': log_id}) | |
965 | + | |
966 | + return JsonResponse({'message': 'ok'}) | |
934 | 967 | \ No newline at end of file | ... | ... |