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 | ... | ... |