Commit 2ace89260d55f20c2b4e7785bd6f20f63b742c51
Exists in
master
and in
2 other branches
Merge branch 'refactoring' of https://github.com/amadeusproject/amadeuslms into refactoring
Showing
84 changed files
with
1417 additions
and
494 deletions
Show diff stats
amadeus/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
amadeus/settings.py
amadeus/static/js/crop_news.js
1 | 1 | $(function () { |
2 | - | |
3 | 2 | /* Script para abrir o modal com a imagem selecionada */ |
4 | 3 | $("#id_image").change(function () { |
4 | + var max_size = 5*1024*1024; | |
5 | + var submit_btn = $("#news-form").find("input[type='submit']"); | |
6 | + var mimeTypes = $(this).data('mimetypes'); | |
7 | + var errors = 0; | |
8 | + | |
9 | + $(".client-file-errors").hide(); | |
10 | + $(".size").hide(); | |
11 | + $(".format").hide(); | |
12 | + $(submit_btn).prop('disable', false); | |
13 | + $(submit_btn).prop('disabled', false); | |
14 | + | |
5 | 15 | if (this.files && this.files[0]) { |
6 | - var reader = new FileReader(); | |
7 | - reader.onload = function (e) { | |
8 | - $("#image").attr("src", e.target.result); | |
9 | - $("#modalCrop").modal("show"); | |
16 | + if (this.files[0].size > max_size) { | |
17 | + $(submit_btn).prop('disable', true); | |
18 | + $(submit_btn).prop('disabled', true); | |
19 | + | |
20 | + $(".client-file-errors").show(); | |
21 | + $(".size").show(); | |
22 | + | |
23 | + errors++; | |
24 | + } | |
25 | + | |
26 | + if (!mimeTypes.includes(this.files[0].type)) { | |
27 | + $(submit_btn).prop('disable', true); | |
28 | + $(submit_btn).prop('disabled', true); | |
29 | + | |
30 | + $(".client-file-errors").show(); | |
31 | + $(".format").show(); | |
32 | + | |
33 | + errors++; | |
34 | + } | |
35 | + | |
36 | + if (errors == 0) { | |
37 | + var reader = new FileReader(); | |
38 | + reader.onload = function (e) { | |
39 | + $("#image").attr("src", e.target.result); | |
40 | + $("#modalCrop").modal("show"); | |
41 | + } | |
42 | + reader.readAsDataURL(this.files[0]); | |
10 | 43 | } |
11 | - reader.readAsDataURL(this.files[0]); | |
12 | 44 | } |
13 | 45 | }); |
14 | 46 | |
... | ... | @@ -19,7 +51,7 @@ $(function () { |
19 | 51 | $("#modalCrop").on("shown.bs.modal", function () { |
20 | 52 | $image.cropper({ |
21 | 53 | viewMode: 1 , |
22 | - aspectRatio: 24/5, | |
54 | + aspectRatio: 3/1, | |
23 | 55 | minCropBoxWidth: 200, |
24 | 56 | minCropBoxHeight: 200, |
25 | 57 | dragMode: 'move', | ... | ... |
amadeus/static/js/mural.js
... | ... | @@ -91,7 +91,12 @@ function seeComplete(btn, post) { |
91 | 91 | function setPostFormSubmit(post = "") { |
92 | 92 | var frm = $('#post-form'); |
93 | 93 | |
94 | - frm.submit(function () { | |
94 | + frm.submit(function (e) { | |
95 | + var btn = frm.parent().parent().parent().find("button[form='post-form']") | |
96 | + | |
97 | + btn.prop('disable', true); | |
98 | + btn.prop('disabled', true); | |
99 | + | |
95 | 100 | var formData = new FormData($(this)[0]); |
96 | 101 | |
97 | 102 | $.ajax({ |
... | ... | @@ -250,6 +255,11 @@ function setCommentFormSubmit(post, comment = "") { |
250 | 255 | var frm = $('#comment-form'); |
251 | 256 | |
252 | 257 | frm.submit(function () { |
258 | + var btn = frm.parent().parent().parent().find("button[form='comment-form']") | |
259 | + | |
260 | + btn.prop('disable', true); | |
261 | + btn.prop('disabled', true); | |
262 | + | |
253 | 263 | var formData = new FormData($(this)[0]); |
254 | 264 | |
255 | 265 | $.ajax({ | ... | ... |
amadeus/static/js/resources.js
... | ... | @@ -135,16 +135,30 @@ function FileSelectHandler(e) { |
135 | 135 | parent = $(e.target.offsetParent), |
136 | 136 | max_size = parseInt($(e.target).data("max_size")) * 1024 * 1024, |
137 | 137 | submit_btn = $(e.target).closest("form").find("input[type='submit']"), |
138 | - mimeTypes = $(e.target).data('mimetypes'); | |
138 | + mimeTypes = $(e.target).data('mimetypes'), | |
139 | + file_id = parent.data('file_id'); | |
139 | 140 | |
140 | - $(".client-file-errors").hide(); | |
141 | - $(".size").hide(); | |
142 | - $(".format").hide(); | |
143 | - $(submit_btn).prop('disable', false); | |
144 | - $(submit_btn).prop('disabled', false); | |
141 | + if ($(e.target).closest("form").prop('id') == "bulletin") { | |
142 | + parent.removeClass('alert-file'); | |
143 | + | |
144 | + var alerts_open = $(e.target).closest("form").find(".alert-file").length; | |
145 | + | |
146 | + if (alerts_open == 0) { | |
147 | + $(submit_btn).prop('disable', false); | |
148 | + $(submit_btn).prop('disabled', false); | |
149 | + } | |
150 | + | |
151 | + $("." + file_id + "-file-errors").hide(); | |
152 | + $("." + file_id + "-file-errors .size").hide(); | |
153 | + $("." + file_id + "-file-errors .format").hide(); | |
154 | + } else { | |
155 | + $(".client-file-errors").hide(); | |
156 | + $(".size").hide(); | |
157 | + $(".format").hide(); | |
158 | + $(submit_btn).prop('disable', false); | |
159 | + $(submit_btn).prop('disabled', false); | |
160 | + } | |
145 | 161 | |
146 | - console.log($(e.target).data('mimetypes')); | |
147 | - console.log(mimeTypes); | |
148 | 162 | |
149 | 163 | // process all File objects |
150 | 164 | for (var i = 0, f; f = files[i]; i++) { |
... | ... | @@ -153,16 +167,30 @@ function FileSelectHandler(e) { |
153 | 167 | $(submit_btn).prop('disable', true); |
154 | 168 | $(submit_btn).prop('disabled', true); |
155 | 169 | |
156 | - $(".client-file-errors").show(); | |
157 | - $(".size").show(); | |
170 | + if ($(e.target).closest("form").prop('id') == "bulletin") { | |
171 | + $("." + file_id + "-file-errors").show(); | |
172 | + $("." + file_id + "-file-errors .size").show(); | |
173 | + | |
174 | + parent.addClass('alert-file'); | |
175 | + } else { | |
176 | + $(".client-file-errors").show(); | |
177 | + $(".size").show(); | |
178 | + } | |
158 | 179 | } |
159 | 180 | |
160 | 181 | if (!mimeTypes.includes(f.type)) { |
161 | 182 | $(submit_btn).prop('disable', true); |
162 | 183 | $(submit_btn).prop('disabled', true); |
163 | 184 | |
164 | - $(".client-file-errors").show(); | |
165 | - $(".format").show(); | |
185 | + if ($(e.target).closest("form").prop('id') == "bulletin") { | |
186 | + $("." + file_id + "-file-errors").show(); | |
187 | + $("." + file_id + "-file-errors .format").show(); | |
188 | + | |
189 | + parent.addClass('alert-file'); | |
190 | + } else { | |
191 | + $(".client-file-errors").show(); | |
192 | + $(".format").show(); | |
193 | + } | |
166 | 194 | } |
167 | 195 | |
168 | 196 | parent.find('.filedrag').html(f.name); | ... | ... |
analytics/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
api/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | @@ -18,23 +18,31 @@ msgstr "" |
18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
20 | 20 | |
21 | -#: api/views.py:332 | |
21 | +#: api/utils.py:35 | |
22 | +msgid " sent a message" | |
23 | +msgstr "" | |
24 | + | |
25 | +#: api/utils.py:40 | |
26 | +msgid "[Photo]" | |
27 | +msgstr "" | |
28 | + | |
29 | +#: api/views.py:341 | |
22 | 30 | #, python-format |
23 | 31 | msgid "Last message in %s" |
24 | 32 | msgstr "" |
25 | 33 | |
26 | -#: api/views.py:349 | |
34 | +#: api/views.py:358 | |
27 | 35 | msgid "Message sent successfully!" |
28 | 36 | msgstr "" |
29 | 37 | |
30 | -#: api/views.py:353 | |
38 | +#: api/views.py:364 | |
31 | 39 | msgid "Error while sending message!" |
32 | 40 | msgstr "" |
33 | 41 | |
34 | -#: api/views.py:360 | |
42 | +#: api/views.py:371 | |
35 | 43 | msgid "No information received!" |
36 | 44 | msgstr "" |
37 | 45 | |
38 | -#: api/views.py:366 | |
46 | +#: api/views.py:377 | |
39 | 47 | msgid "Amadeus" |
40 | 48 | msgstr "" | ... | ... |
... | ... | @@ -0,0 +1,42 @@ |
1 | +import json | |
2 | +import textwrap | |
3 | +from django.utils.html import strip_tags | |
4 | +from django.utils.translation import ugettext as _ | |
5 | + | |
6 | +from fcm_django.models import FCMDevice | |
7 | +from fcm_django.fcm import fcm_send_message | |
8 | + | |
9 | +from chat.serializers import ChatSerializer | |
10 | + | |
11 | +def sendChatPushNotification(user, message): | |
12 | + device = FCMDevice.objects.filter(user = user, active = True).first() | |
13 | + | |
14 | + if not device is None: | |
15 | + serializer = ChatSerializer(message) | |
16 | + | |
17 | + json_r = json.dumps(serializer.data) | |
18 | + json_r = json.loads(json_r) | |
19 | + | |
20 | + info = {} | |
21 | + | |
22 | + info["data"] = {} | |
23 | + info["data"]["messages"] = [] | |
24 | + info["data"]["message_sent"] = json_r | |
25 | + | |
26 | + info["message"] = "" | |
27 | + info["type"] = "" | |
28 | + info["title"] = "" | |
29 | + info["success"] = True | |
30 | + info["number"] = 1 | |
31 | + info['extra'] = 0 | |
32 | + | |
33 | + response = json.dumps(info) | |
34 | + | |
35 | + title = str(message.user).join(_(" sent a message")) | |
36 | + | |
37 | + simple_notify = textwrap.shorten(strip_tags(message.text), width = 30, placeholder = "...") | |
38 | + | |
39 | + if message.image: | |
40 | + simple_notify += " ".join(_("[Photo]")) | |
41 | + | |
42 | + device.send_message(data = {"response": response, "title": title, "body": simple_notify, "user_from": message.user.email, "user_name": str(message.user), "user_img": message.user.image_url}) | |
0 | 43 | \ No newline at end of file | ... | ... |
api/views.py
... | ... | @@ -35,6 +35,8 @@ from django.http import HttpResponse |
35 | 35 | |
36 | 36 | from fcm_django.models import FCMDevice |
37 | 37 | |
38 | +from .utils import sendChatPushNotification | |
39 | + | |
38 | 40 | @csrf_exempt |
39 | 41 | def getToken(request): |
40 | 42 | oauth = Application.objects.filter(name = "amadeus-droid") |
... | ... | @@ -303,7 +305,14 @@ class ChatViewset(viewsets.ModelViewSet): |
303 | 305 | |
304 | 306 | talk.save() |
305 | 307 | |
306 | - subject = Subject.objects.get(slug = subject) | |
308 | + if subject != "": | |
309 | + subject = Subject.objects.get(slug = subject) | |
310 | + space = subject.slug | |
311 | + space_type = "subject" | |
312 | + else: | |
313 | + subject = None | |
314 | + space = 0 | |
315 | + space_type = "general" | |
307 | 316 | |
308 | 317 | message = TalkMessages() |
309 | 318 | message.text = "<p>" + msg_text + "</p>" |
... | ... | @@ -318,11 +327,11 @@ class ChatViewset(viewsets.ModelViewSet): |
318 | 327 | |
319 | 328 | if not message.pk is None: |
320 | 329 | simple_notify = textwrap.shorten(strip_tags(message.text), width = 30, placeholder = "...") |
321 | - | |
330 | + | |
322 | 331 | notification = { |
323 | 332 | "type": "chat", |
324 | - "subtype": "subject", | |
325 | - "space": subject.slug, | |
333 | + "subtype": space_type, | |
334 | + "space": space, | |
326 | 335 | "user_icon": message.user.image_url, |
327 | 336 | "notify_title": str(message.user), |
328 | 337 | "simple_notify": simple_notify, |
... | ... | @@ -349,6 +358,8 @@ class ChatViewset(viewsets.ModelViewSet): |
349 | 358 | info["message"] = _("Message sent successfully!") |
350 | 359 | info["success"] = True |
351 | 360 | info["number"] = 1 |
361 | + | |
362 | + sendChatPushNotification(user_to, message) | |
352 | 363 | else: |
353 | 364 | info["message"] = _("Error while sending message!") |
354 | 365 | info["success"] = False | ... | ... |
backup.json
1 | -[[{"id": 6, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 48, "name": "anything"}, {"id": 49, "name": "lsoe"}], "pendencies_resource": [], "groups": [], "students": [{"id": 179, "log": [], "password": "pbkdf2_sha256$30000$5gbyp9Al3C2n$rroJzhQWFLetSzLJto5kyVC4z2hycFSWhH8uq3lhazI=", "last_login": "2017-01-23T22:49:17.560412Z", "is_superuser": false, "email": "e178@amadeus.br", "username": "e", "last_name": "178", "social_name": "Estudante 178", "description": "<p>Estudante da Universidade Federal do Vale do S\u00e3o Francisco - <b>UNIVASF</b>.</p>", "image": "/uploads/users/e178.jpg", "date_created": "2017-01-01T03:00:00Z", "last_update": "2017-01-01T03:00:00Z", "show_email": 1, "is_staff": false, "is_active": true, "groups": [], "user_permissions": []}, {"id": 180, "log": [{"id": 521, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-02-09T15:20:22.785376Z"}, {"id": 661, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-02-20T13:47:40.169910Z"}, {"id": 1182, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488941129", "category_id": 22, "timestamp_start": "1488941127"}, "action": "view", "resource": "subject", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-03-08T02:45:27.700588Z"}, {"id": 1183, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488941132", "category_id": 22, "timestamp_start": "1488941129"}, "action": "access", "resource": "subject", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-03-08T02:45:29.258883Z"}, {"id": 1184, "component": "topic", "context": {"topic_id": 32, "category_name": "F\u00cdSICA", "topic_slug": "now-invisble", "subject_id": 459, "topic_name": "Now Invisble", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488941132", "category_id": 22, "timestamp_start": "1488941131", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-03-08T02:45:31.583986Z"}, {"id": 1185, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488941132", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488941138", "category_id": 22}, "action": "view", "resource": "goals", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-03-08T02:45:32.592430Z"}, {"id": 1186, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488941132", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "submit", "resource": "goals", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-03-08T02:45:38.340224Z"}, {"id": 1187, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488941138", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-03-08T02:45:38.526546Z"}, {"id": 1219, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-03-11T00:37:10.275153Z"}], "password": "pbkdf2_sha256$30000$5gbyp9Al3C2n$rroJzhQWFLetSzLJto5kyVC4z2hycFSWhH8uq3lhazI=", "last_login": "2017-03-08T02:45:23.288024Z", "is_superuser": false, "email": "e179@amadeus.br", "username": "e", "last_name": "179", "social_name": "Estudante 179", "description": "<p>Estudante da Universidade Federal do Vale do S\u00e3o Francisco - <b>UNIVASF</b>.</p>", "image": "/uploads/users/e179.jpg", "date_created": "2017-01-01T03:00:00Z", "last_update": "2017-01-01T03:00:00Z", "show_email": 1, "is_staff": false, "is_active": true, "groups": [], "user_permissions": []}, {"id": 181, "log": [{"id": 759, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819337", "subject_id": 459, "timestamp_start": "1487819274", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:07:54.790064Z"}, {"id": 762, "component": "pendencies", "context": {"notification_id": 1264, "notification": "Criar Teste 2"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:09:05.305320Z"}, {"id": 205, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485470536", "category_id": 22, "timestamp_start": "1485470531"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:11.752255Z"}, {"id": 204, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485470531", "category_id": 22, "timestamp_start": "1485470530"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:10.443457Z"}, {"id": 206, "component": "topic", "context": {"topic_id": 28, "category_name": "F\u00cdSICA", "topic_slug": "topico", "subject_id": 459, "topic_name": "T\u00f3pico", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485470536", "category_id": 22, "timestamp_start": "1485470533", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:13.800455Z"}, {"id": 300, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817823"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:23.718744Z"}, {"id": 207, "component": "resources", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "webpage_slug": "runaway", "subject_slug": "acustica", "topic_id": 28, "timestamp_start": "1485470536", "topic_slug": "topico", "topic_name": "T\u00f3pico", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485470541", "webpage_id": 34, "category_id": 22, "webpage_name": "Runaway"}, "action": "view", "resource": "webpage", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:16.899890Z"}, {"id": 208, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485470541"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:21.748456Z"}, {"id": 761, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819596", "subject_id": 459, "timestamp_start": "1487819340", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:09:00.105224Z"}, {"id": 210, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-27T00:00:27.896353Z"}, {"id": 209, "component": "topic", "context": {"topic_id": 28, "category_name": "F\u00cdSICA", "topic_slug": "topico", "subject_id": 459, "topic_name": "T\u00f3pico", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485551249", "category_id": 22, "timestamp_start": "1485470542", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:22.309161Z"}, {"id": 763, "component": "mural", "context": {"timestamp_end": "1487819618", "timestamp_start": "1487819597"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:13:17.210969Z"}, {"id": 242, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-28T00:14:10.442184Z"}, {"id": 235, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485551258", "category_id": 22, "timestamp_start": "1485551257"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-27T21:07:37.363710Z"}, {"id": 236, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-27T21:07:46.302234Z"}, {"id": 248, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-28T00:40:09.156424Z"}, {"id": 252, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T17:03:06.179857Z"}, {"id": 254, "component": "subject", "context": {"search_for": "matem\u00e1tica"}, "action": "search", "resource": "subject/resources", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T17:32:54.742653Z"}, {"id": 255, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485800449", "category_id": 22, "timestamp_start": "1485800431"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T18:20:31.082273Z"}, {"id": 256, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T18:20:49.508637Z"}, {"id": 272, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T18:30:48.022453Z"}, {"id": 296, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T19:51:02.361646Z"}, {"id": 297, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817067", "category_id": 22, "timestamp_start": "1485817029"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T22:57:09.534154Z"}, {"id": 298, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817823", "category_id": 22, "timestamp_start": "1485817816"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:16.573429Z"}, {"id": 302, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817823"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:23.999732Z"}, {"id": 303, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.167376Z"}, {"id": 324, "component": "category", "context": {"timestamp_start": "1485976208", "category_slug": "administracao", "category_name": "ADMINISTRA\u00c7\u00c3O", "category_id": 1, "timestamp_end": "1485976214"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:10:08.328805Z"}, {"id": 304, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.321138Z"}, {"id": 313, "component": "topic", "context": {"topic_id": 28, "category_name": "F\u00cdSICA", "topic_slug": "topico", "subject_id": 459, "topic_name": "T\u00f3pico", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485817863", "category_id": 22, "timestamp_start": "1485817861", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:11:01.913755Z"}, {"id": 314, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:52:56.763660Z"}, {"id": 299, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817824", "category_id": 22, "timestamp_start": "1485817823"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:23.507849Z"}, {"id": 305, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.948644Z"}, {"id": 306, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.964254Z"}, {"id": 301, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817824", "category_id": 22, "timestamp_start": "1485817823"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:23.893312Z"}, {"id": 307, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.982882Z"}, {"id": 308, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.983647Z"}, {"id": 309, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817856", "category_id": 22, "timestamp_start": "1485817825"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:25.040109Z"}, {"id": 310, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817856"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:56.623919Z"}, {"id": 315, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485837050", "category_id": 22, "timestamp_start": "1485837013"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T04:30:13.979178Z"}, {"id": 311, "component": "topic", "context": {"topic_id": 31, "category_name": "F\u00cdSICA", "topic_slug": "invisible", "subject_id": 459, "topic_name": "Visible", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485817860", "category_id": 22, "timestamp_start": "1485817858", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:58.793794Z"}, {"id": 316, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T12:47:37.896380Z"}, {"id": 312, "component": "topic", "context": {"topic_id": 29, "category_name": "F\u00cdSICA", "topic_slug": "troia", "subject_id": 459, "topic_name": "troia", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485817861", "category_id": 22, "timestamp_start": "1485817860", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:11:00.819240Z"}, {"id": 317, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T18:37:38.618881Z"}, {"id": 318, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T19:12:32.773778Z"}, {"id": 319, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T23:28:13.691378Z"}, {"id": 320, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T14:34:07.639190Z"}, {"id": 323, "component": "category", "context": {"timestamp_start": "1485974786", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1485974790"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T18:46:25.990585Z"}, {"id": 321, "component": "category", "context": {"timestamp_start": "1485974281", "category_slug": "agronomia", "category_name": "AGRONOMIA", "category_id": 2, "timestamp_end": "1485974735"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T18:38:01.194092Z"}, {"id": 322, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485974772", "category_id": 22, "timestamp_start": "1485974769"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T18:46:09.361339Z"}, {"id": 325, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485976246", "category_id": 22, "timestamp_start": "1485976245"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:10:45.062924Z"}, {"id": 326, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485976264", "category_id": 22, "timestamp_start": "1485976246"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:10:46.849697Z"}, {"id": 327, "component": "topic", "context": {"topic_id": 31, "category_name": "F\u00cdSICA", "topic_slug": "invisible", "subject_id": 459, "topic_name": "Visible", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485976261", "category_id": 22, "timestamp_start": "1485976260", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:11:00.675879Z"}, {"id": 328, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:11:04.309321Z"}, {"id": 767, "component": "mural", "context": {"post_id": "120"}, "action": "delete_post", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:18:20.846208Z"}, {"id": 356, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-02T17:51:57.991297Z"}, {"id": 764, "component": "mural", "context": {"timestamp_end": "1487820251", "timestamp_start": "1487819865"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:17:45.551898Z"}, {"id": 768, "component": "mural", "context": {"timestamp_end": "1487820270", "timestamp_start": "1487820251"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:24:11.371756Z"}, {"id": 770, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "83", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:25:32.108185Z"}, {"id": 500, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-05T03:49:10.189731Z"}, {"id": 498, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-04T02:16:03.713455Z"}, {"id": 506, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-06T21:52:10.915119Z"}, {"id": 514, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-08T20:24:50.861429Z"}, {"id": 586, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-13T20:03:44.925986Z"}, {"id": 1943, "component": "chat", "context": {"timestamp_end": "1491527631", "timestamp_start": "1491527509"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:49.574701Z"}, {"id": 593, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-14T15:01:30.551792Z"}, {"id": 595, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-14T21:40:49.191265Z"}, {"id": 608, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-16T10:30:44.154434Z"}, {"id": 616, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-17T00:49:36.985050Z"}, {"id": 620, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-17T23:46:37.967352Z"}, {"id": 632, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-18T02:45:09.855062Z"}, {"id": 633, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-18T03:10:14.618203Z"}, {"id": 656, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-18T16:27:53.309528Z"}, {"id": 760, "component": "pendencies", "context": {"notification_id": 1264, "notification": "Criar Teste 2"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:08:03.959137Z"}, {"id": 752, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T01:44:31.566063Z"}, {"id": 747, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487811503", "subject_id": 459, "timestamp_start": "1487811472", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T00:57:52.930523Z"}, {"id": 748, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487811515", "subject_id": 459, "timestamp_start": "1487811503", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T00:58:23.491201Z"}, {"id": 749, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487811640", "subject_id": 459, "timestamp_start": "1487811515", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T00:58:35.675991Z"}, {"id": 750, "component": "pendencies", "context": {"timestamp_start": "1487811640", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1487811667", "history_page": "2"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T01:00:40.332145Z"}, {"id": 751, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487811714", "subject_id": 459, "timestamp_start": "1487811667", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T01:01:07.531334Z"}, {"id": 755, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819072", "subject_id": 459, "timestamp_start": "1487818941", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:02:21.881897Z"}, {"id": 754, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487818941", "subject_id": 459, "timestamp_start": "1487818935", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:02:15.907517Z"}, {"id": 756, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819088", "subject_id": 459, "timestamp_start": "1487819079", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:04:39.304989Z"}, {"id": 757, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819248", "subject_id": 459, "timestamp_start": "1487819083", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:04:43.266285Z"}, {"id": 758, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819272", "subject_id": 459, "timestamp_start": "1487819248", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:07:28.517853Z"}, {"id": 765, "component": "mural", "context": {}, "action": "create_post", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:17:54.672547Z"}, {"id": 766, "component": "mural", "context": {"post_id": "120"}, "action": "edit_post", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:18:08.851857Z"}, {"id": 769, "component": "mural", "context": {"post_id": "119"}, "action": "create_comment", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:24:21.928140Z"}, {"id": 771, "component": "mural", "context": {"category_name": "F\u00cdSICA", "post_id": "118", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:25:52.653247Z"}, {"id": 772, "component": "mural", "context": {"category_name": "F\u00cdSICA", "post_id": "91", "subject_id": 509, "category_slug": "fisica", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "category_id": 22}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:26:34.622097Z"}, {"id": 773, "component": "mural", "context": {"category_name": "F\u00cdSICA", "post_id": "91", "subject_id": 509, "category_slug": "fisica", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "category_id": 22}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:27:55.609252Z"}, {"id": 774, "component": "mural", "context": {"subject_name": "AERONOMIA", "post_id": "91", "subject_id": 509, "subject_slug": "aeronomia"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:29:02.640123Z"}, {"id": 775, "component": "mural", "context": {"subject_name": "AERONOMIA", "post_id": "91", "subject_id": 509, "subject_slug": "aeronomia"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:30:02.458851Z"}, {"id": 776, "component": "mural", "context": {"category_name": "F\u00cdSICA", "post_id": "57", "subject_id": 509, "category_slug": "fisica", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:30:24.187150Z"}, {"id": 777, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "56", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:32:05.419796Z"}, {"id": 778, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": "117", "subject_id": 459, "subject_slug": "acustica"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:32:29.703509Z"}, {"id": 779, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "56", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:32:51.016742Z"}, {"id": 780, "component": "mural", "context": {"resource_name": "Testando", "post_id": "104", "subject_id": 459, "resource_id": 47, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "testando"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:37:06.917608Z"}, {"id": 781, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": "117", "subject_id": 459, "subject_slug": "acustica"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:37:25.110939Z"}, {"id": 782, "component": "mural", "context": {"resource_name": "Testando", "post_id": "104", "subject_id": 459, "resource_id": 47, "comment_id": "64", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "testando"}, "action": "edit_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:38:55.588303Z"}, {"id": 783, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": "117", "subject_id": 459, "comment_id": "65", "subject_slug": "acustica"}, "action": "edit_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:39:11.828612Z"}, {"id": 784, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "56", "category_id": 22, "comment_id": "62"}, "action": "edit_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:39:37.546127Z"}, {"id": 786, "component": "mural", "context": {"post_id": "119", "comment_id": "51"}, "action": "edit_comment", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:39:58.143755Z"}, {"id": 785, "component": "mural", "context": {"timestamp_end": "1487821254", "timestamp_start": "1487821183"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:39:43.778697Z"}, {"id": 787, "component": "mural", "context": {"resource_name": "Testando", "post_id": "104", "subject_id": 459, "resource_id": 47, "comment_id": "64", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "testando"}, "action": "delete_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:04.684362Z"}, {"id": 788, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "56", "category_id": 22, "comment_id": "62"}, "action": "delete_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:19.841564Z"}, {"id": 789, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": "117", "subject_id": 459, "comment_id": "65", "subject_slug": "acustica"}, "action": "delete_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:32.368296Z"}, {"id": 791, "component": "mural", "context": {"post_id": "119", "comment_id": "51"}, "action": "delete_comment", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:45.087772Z"}, {"id": 790, "component": "mural", "context": {"timestamp_end": "1487821570", "timestamp_start": "1487821299"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:39.638918Z"}, {"id": 792, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22}, "action": "create_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:46:17.426384Z"}, {"id": 793, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": 121, "category_id": 22}, "action": "edit_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:46:36.152350Z"}, {"id": 794, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": 121, "category_id": 22}, "action": "delete_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:46:44.551370Z"}, {"id": 795, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "subject_id": 459, "subject_slug": "acustica"}, "action": "create_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:07.758060Z"}, {"id": 796, "component": "mural", "context": {"resource_name": "Found here", "subject_id": 459, "resource_id": 29, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "found-here"}, "action": "create_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:20.229336Z"}, {"id": 797, "component": "mural", "context": {"resource_name": "Found here", "post_id": 123, "subject_id": 459, "resource_id": 29, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "found-here"}, "action": "edit_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:39.066914Z"}, {"id": 798, "component": "mural", "context": {"resource_name": "Found here", "post_id": 122, "subject_id": 459, "resource_id": 29, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "found-here"}, "action": "edit_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:50.112559Z"}, {"id": 799, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": 122, "subject_id": 459, "subject_slug": "acustica"}, "action": "delete_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:58.543414Z"}, {"id": 800, "component": "mural", "context": {"resource_name": "Found here", "post_id": 123, "subject_id": 459, "resource_id": 29, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "found-here"}, "action": "delete_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:52:01.913353Z"}, {"id": 801, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487822069", "subject_id": 459, "timestamp_start": "1487822058", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:54:18.886887Z"}, {"id": 802, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1487822092", "category_id": 22, "timestamp_start": "1487822069"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:54:29.908068Z"}, {"id": 803, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1487822218", "category_id": 22, "timestamp_start": "1487822217"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:56:57.566068Z"}, {"id": 804, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1487822222", "category_id": 22, "timestamp_start": "1487822218"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:56:58.938426Z"}, {"id": 805, "component": "subject", "context": {"category_name": "GEOCI\u00caNCIAS", "subject_id": 509, "category_slug": "geociencias", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "timestamp_end": "1487822228", "category_id": 23, "timestamp_start": "1487822227"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:57:07.421128Z"}, {"id": 806, "component": "subject", "context": {"category_name": "GEOCI\u00caNCIAS", "subject_id": 509, "category_slug": "geociencias", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "timestamp_end": "1487822230", "category_id": 23, "timestamp_start": "1487822228"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:57:08.643965Z"}, {"id": 818, "component": "mural", "context": {"timestamp_end": "1487822925", "timestamp_start": "1487822922"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:08:42.820267Z"}, {"id": 820, "component": "mural", "context": {"subject_name": "AERONOMIA", "timestamp_end": "1487822950", "subject_id": 509, "timestamp_start": "1487822942", "subject_slug": "aeronomia"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:09:02.752121Z"}, {"id": 819, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487822942", "subject_id": 459, "timestamp_start": "1487822929", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:08:49.664237Z"}, {"id": 821, "component": "mural", "context": {"timestamp_start": "1487822964", "category_slug": "ecologia", "category_name": "ECONOMIA", "category_id": 12, "timestamp_end": "1487822972"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:09:24.119330Z"}, {"id": 822, "component": "mural", "context": {"timestamp_start": "1487822972", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1487822978"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:09:32.720221Z"}, {"id": 824, "component": "mural", "context": {"timestamp_start": "1487823004", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1487823011"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:10:04.914334Z"}, {"id": 823, "component": "mural", "context": {"timestamp_start": "1487823004", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1487823023"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:10:04.537879Z"}, {"id": 826, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823060", "subject_id": 459, "timestamp_start": "1487823025", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:10:25.399030Z"}, {"id": 844, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:17:08.034061Z"}, {"id": 838, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823262", "subject_id": 459, "timestamp_start": "1487823216", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:13:36.593832Z"}, {"id": 835, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823262", "subject_id": 459, "timestamp_start": "1487823200", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:13:19.973986Z"}, {"id": 837, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823262", "subject_id": 459, "timestamp_start": "1487823216", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:13:36.239900Z"}, {"id": 828, "component": "mural", "context": {"subject_name": "AERONOMIA", "timestamp_end": "1487823086", "subject_id": 509, "timestamp_start": "1487823068", "subject_slug": "aeronomia"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:11:08.658689Z"}, {"id": 825, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823133", "subject_id": 459, "timestamp_start": "1487823025", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:10:25.024652Z"}, {"id": 827, "component": "mural", "context": {"subject_name": "AERONOMIA", "timestamp_end": "1487823133", "subject_id": 509, "timestamp_start": "1487823068", "subject_slug": "aeronomia"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:11:08.283495Z"}, {"id": 829, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823133", "subject_id": 459, "timestamp_start": "1487823086", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:11:26.037229Z"}, {"id": 830, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823133", "subject_id": 459, "timestamp_start": "1487823086", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:11:26.421082Z"}, {"id": 839, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823274", "subject_id": 459, "timestamp_start": "1487823264", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:14:24.814253Z"}, {"id": 831, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823152", "subject_id": 459, "timestamp_start": "1487823138", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:12:18.915670Z"}, {"id": 832, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823152", "subject_id": 459, "timestamp_start": "1487823139", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:12:19.310937Z"}, {"id": 834, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823184", "subject_id": 459, "timestamp_start": "1487823155", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:12:35.803614Z"}, {"id": 833, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823198", "subject_id": 459, "timestamp_start": "1487823155", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:12:35.349965Z"}, {"id": 840, "component": "mural", "context": {"subject_name": "AERONOMIA", "timestamp_end": "1487823283", "subject_id": 509, "timestamp_start": "1487823279", "subject_slug": "aeronomia"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:14:39.617722Z"}, {"id": 836, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823209", "subject_id": 459, "timestamp_start": "1487823200", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:13:20.363273Z"}, {"id": 841, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823288", "subject_id": 459, "timestamp_start": "1487823283", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:14:43.420174Z"}, {"id": 842, "component": "mural", "context": {"timestamp_start": "1487823308", "category_slug": "ecologia", "category_name": "ECONOMIA", "category_id": 12, "timestamp_end": "1487823317"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:15:08.906391Z"}, {"id": 843, "component": "mural", "context": {"timestamp_start": "1487823317", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1487823325"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:15:17.374624Z"}, {"id": 1057, "component": "mural", "context": {"timestamp_start": "1488237433"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-27T23:17:13.774687Z"}, {"id": 1100, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488503911", "category_id": 22, "timestamp_start": "1488503910"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-03T01:18:30.621679Z"}, {"id": 1102, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-03T01:18:40.974286Z"}, {"id": 1101, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488503920", "category_id": 22, "timestamp_start": "1488503911"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-03T01:18:31.947009Z"}, {"id": 1107, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-03T01:47:20.608235Z"}, {"id": 1135, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488843766", "category_id": 22, "timestamp_start": "1488843765"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:42:45.788392Z"}, {"id": 1143, "component": "resources", "context": {"topic_slug": "repositorio", "subject_id": 459, "category_slug": "fisica", "goals_slug": "snuff", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 70, "timestamp_start": "1488844187", "topic_id": 30, "goals_name": "Snuff", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:49:47.208564Z"}, {"id": 1136, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488843808", "category_id": 22, "timestamp_start": "1488843766"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:42:46.977064Z"}, {"id": 1141, "component": "resources", "context": {"topic_slug": "repositorio", "subject_id": 459, "category_slug": "fisica", "goals_slug": "snuff", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 70, "timestamp_start": "1488843808", "topic_id": 30, "goals_name": "Snuff", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488843810", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:43:28.284675Z"}, {"id": 1142, "component": "resources", "context": {"topic_slug": "repositorio", "subject_id": 459, "category_slug": "fisica", "goals_slug": "snuff", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 70, "topic_id": 30, "goals_name": "Snuff", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "update", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:49:47.133749Z"}, {"id": 1144, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-07T00:10:48.186363Z"}, {"id": 1174, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488936573", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "submit", "resource": "goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:39.285570Z"}, {"id": 1170, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488936569", "category_id": 22, "timestamp_start": "1488936568"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:28.317125Z"}, {"id": 1171, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488936573", "category_id": 22, "timestamp_start": "1488936569"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:29.784524Z"}, {"id": 1172, "component": "topic", "context": {"topic_id": 32, "category_name": "F\u00cdSICA", "topic_slug": "now-invisble", "subject_id": 459, "topic_name": "Now Invisble", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488936573", "category_id": 22, "timestamp_start": "1488936571", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:31.953040Z"}, {"id": 1173, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488936573", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488936579", "category_id": 22}, "action": "view", "resource": "goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:33.676092Z"}, {"id": 1175, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488936579", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488936619", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:39.391830Z"}, {"id": 1176, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488936619", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:30:19.150112Z"}, {"id": 1181, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T02:45:16.171950Z"}, {"id": 1222, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-14T00:50:31.882062Z"}, {"id": 1221, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-11T01:03:34.669314Z"}, {"id": 1314, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-29T00:49:02.657364Z"}, {"id": 1316, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1490751661", "category_id": 22, "timestamp_start": "1490751658"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-29T01:40:58.604592Z"}, {"id": 1317, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1490751663"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-29T01:41:03.689244Z"}, {"id": 1560, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:33:22.315075Z"}, {"id": 1561, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491183816", "category_id": 22, "timestamp_start": "1491183815"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:43:35.720998Z"}, {"id": 1563, "component": "topic", "context": {"topic_id": 32, "category_name": "F\u00cdSICA", "topic_slug": "now-invisble", "subject_id": 459, "topic_name": "Now Invisble", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1491183825", "category_id": 22, "timestamp_start": "1491183823", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:43:43.290815Z"}, {"id": 1562, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491183885", "category_id": 22, "timestamp_start": "1491183817"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:43:37.063065Z"}, {"id": 1566, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491183889", "category_id": 22, "timestamp_start": "1491183885"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:44:45.216039Z"}, {"id": 1674, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:55:42.781884Z"}, {"id": 1672, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:55:31.808049Z"}, {"id": 1677, "component": "chat", "context": {"subject_slug": "acustica", "user_email": "admin@amadeus.br", "subject_id": 459, "user_id": 1, "subject_name": "AC\u00daSTICA", "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:56:06.899904Z"}, {"id": 1673, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491353995", "subject_id": 459, "timestamp_start": "1491353740", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:55:40.507639Z"}, {"id": 1680, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:59:58.055991Z"}, {"id": 1682, "component": "chat", "context": {"subject_slug": "acustica", "user_email": "admin@amadeus.br", "subject_id": 459, "user_id": 1, "subject_name": "AC\u00daSTICA", "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:00:12.811175Z"}, {"id": 1679, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491354252", "subject_id": 459, "timestamp_start": "1491353995", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:59:55.874379Z"}, {"id": 1693, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_start": "1491354252", "subject_id": 459, "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:04:12.888402Z"}, {"id": 1694, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:04:14.945824Z"}, {"id": 1696, "component": "chat", "context": {"subject_slug": "acustica", "user_email": "admin@amadeus.br", "subject_id": 459, "user_id": 1, "subject_name": "AC\u00daSTICA", "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:04:25.213499Z"}, {"id": 1706, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:26:38.737881Z"}, {"id": 1708, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:30:21.138639Z"}, {"id": 1714, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:31:01.523956Z"}, {"id": 1717, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:31:14.839898Z"}, {"id": 1718, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:31:32.243590Z"}, {"id": 1724, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:31:44.849951Z"}, {"id": 1726, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:33:11.529728Z"}, {"id": 1734, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:35:43.014849Z"}, {"id": 1735, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:35:55.926115Z"}, {"id": 1739, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:37:35.890388Z"}, {"id": 1743, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:38:33.250084Z"}, {"id": 1746, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:38:49.913400Z"}, {"id": 1754, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:39:25.747552Z"}, {"id": 1759, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:39:58.020397Z"}, {"id": 1761, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:40:12.797425Z"}, {"id": 1764, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:40:49.430312Z"}, {"id": 1794, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:07:03.400068Z"}, {"id": 1784, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:42:20.280954Z"}, {"id": 1785, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:42:30.548117Z"}, {"id": 1796, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:10:35.496279Z"}, {"id": 1788, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:43:23.405407Z"}, {"id": 1789, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:43:30.782736Z"}, {"id": 1790, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:03:32.318245Z"}, {"id": 1791, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:03:32.413256Z"}, {"id": 1792, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:06:49.315711Z"}, {"id": 1797, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:10:45.791602Z"}, {"id": 1815, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T00:00:25.725477Z"}, {"id": 1899, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:57:15.554937Z"}, {"id": 1840, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491510614", "category_id": 22, "timestamp_start": "1491510612"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T20:30:12.828480Z"}, {"id": 1839, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T20:30:08.661590Z"}, {"id": 1841, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1491510614"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T20:30:14.063029Z"}, {"id": 1897, "component": "chat", "context": {"timestamp_end": "1491526695", "timestamp_start": "1491526589"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:56:29.945407Z"}, {"id": 1942, "component": "chat", "context": {"timestamp_end": "1491527509", "timestamp_start": "1491527509"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:49.253164Z"}, {"id": 1900, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:57:23.165700Z"}, {"id": 1901, "component": "chat", "context": {"timestamp_end": "1491526739", "timestamp_start": "1491526695"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:58:15.786995Z"}, {"id": 1871, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T20:51:47.162180Z"}, {"id": 1891, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T21:15:48.378540Z"}, {"id": 1894, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T21:36:15.212908Z"}, {"id": 1896, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:56:11.860093Z"}, {"id": 1898, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:57:01.897417Z"}, {"id": 1902, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:58:18.465654Z"}, {"id": 1904, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:59:02.711508Z"}, {"id": 1915, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:00:30.323138Z"}, {"id": 1918, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:01:04.526598Z"}, {"id": 1903, "component": "chat", "context": {"timestamp_end": "1491526982", "timestamp_start": "1491526739"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:58:59.831863Z"}, {"id": 1929, "component": "chat", "context": {"timestamp_end": "1491526982", "timestamp_start": "1491526982"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:02.615804Z"}, {"id": 1930, "component": "chat", "context": {"timestamp_end": "1491526982", "timestamp_start": "1491526982"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:02.706737Z"}, {"id": 1932, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:05.385823Z"}, {"id": 1933, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:12.641895Z"}, {"id": 1941, "component": "chat", "context": {"timestamp_start": "1491527509"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:49.098422Z"}, {"id": 1931, "component": "chat", "context": {"timestamp_end": "1491527509", "timestamp_start": "1491526982"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:02.927070Z"}, {"id": 1940, "component": "chat", "context": {"timestamp_end": "1491527509", "timestamp_start": "1491527508"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:48.975144Z"}, {"id": 1944, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:52.348335Z"}, {"id": 1946, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:12:07.910661Z"}, {"id": 1967, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:39.219183Z"}, {"id": 1968, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:50.239122Z"}, {"id": 1953, "component": "chat", "context": {"timestamp_start": "1491527631"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:51.731589Z"}, {"id": 1952, "component": "chat", "context": {"timestamp_end": "1491527631", "timestamp_start": "1491527631"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:51.609850Z"}, {"id": 1955, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:54.065399Z"}, {"id": 1956, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:59.483762Z"}, {"id": 1957, "component": "chat", "context": {"timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.407929Z"}, {"id": 1958, "component": "chat", "context": {"timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.495772Z"}, {"id": 1954, "component": "chat", "context": {"timestamp_end": "1491527670", "timestamp_start": "1491527631"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:51.866635Z"}, {"id": 1959, "component": "chat", "context": {"timestamp_end": "1491527670", "timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.606353Z"}, {"id": 1960, "component": "chat", "context": {"timestamp_end": "1491527670", "timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.760560Z"}, {"id": 1961, "component": "chat", "context": {"timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.893797Z"}, {"id": 1971, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:36:10.846757Z"}, {"id": 2009, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:17:44.650595Z"}, {"id": 2010, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491603471", "subject_id": 459, "timestamp_start": "1491603469", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:17:49.021610Z"}, {"id": 2011, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_start": "1491603471", "search_by": "", "subject_id": 459, "subject_slug": "acustica"}, "action": "view", "resource": "subject_participants", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:17:51.587148Z"}, {"id": 2012, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador"}, "action": "view", "resource": "profile", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:17:53.520769Z"}, {"id": 2046, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:37:58.684059Z"}, {"id": 2148, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942929", "subject_id": 459, "timestamp_start": "1491942810", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:30.508338Z"}, {"id": 2141, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:29:50.158140Z"}, {"id": 2143, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:30:10.326303Z"}, {"id": 2144, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:30:29.252907Z"}, {"id": 2142, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942633", "subject_id": 459, "timestamp_start": "1491942597", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:29:57.251442Z"}, {"id": 2159, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944873", "subject_id": 459, "timestamp_start": "1491944688", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:04:48.914286Z"}, {"id": 2145, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942677", "subject_id": 459, "timestamp_start": "1491942633", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:30:33.297605Z"}, {"id": 2156, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:35:48.098332Z"}, {"id": 2146, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942691", "subject_id": 459, "timestamp_start": "1491942677", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:31:17.014560Z"}, {"id": 2155, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942953", "subject_id": 459, "timestamp_start": "1491942933", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:35:33.136966Z"}, {"id": 2147, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942810", "subject_id": 459, "timestamp_start": "1491942691", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:31:31.706590Z"}, {"id": 2158, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944688", "subject_id": 459, "timestamp_start": "1491944687", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:04:47.759404Z"}, {"id": 2149, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.077376Z"}, {"id": 2150, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.088045Z"}, {"id": 2151, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.151688Z"}, {"id": 2152, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.233088Z"}, {"id": 2153, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.310043Z"}, {"id": 2154, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.332206Z"}, {"id": 2157, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944684", "subject_id": 459, "timestamp_start": "1491942953", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:35:53.050266Z"}, {"id": 2160, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:07:52.577789Z"}, {"id": 2161, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944882", "subject_id": 459, "timestamp_start": "1491944881", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:08:01.246381Z"}, {"id": 2162, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944961", "subject_id": 459, "timestamp_start": "1491944882", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:08:02.640389Z"}, {"id": 2163, "component": "pendencies", "context": {"timestamp_start": "1491944966", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491944968"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:09:26.304121Z"}, {"id": 2164, "component": "pendencies", "context": {"timestamp_start": "1491944968", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1491944974", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:09:28.662583Z"}, {"id": 2165, "component": "pendencies", "context": {"timestamp_start": "1491944974", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11/04/2017", "timestamp_end": "1491945024", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:09:34.927707Z"}, {"id": 2176, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:41:42.290483Z"}, {"id": 2166, "component": "pendencies", "context": {"timestamp_start": "1491945024", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11/04/2017", "timestamp_end": "1491945544", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:10:24.503694Z"}, {"id": 2167, "component": "pendencies", "context": {"timestamp_start": "1491945544", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11-04-2017", "timestamp_end": "1491945556", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:04.772824Z"}, {"id": 2168, "component": "pendencies", "context": {"timestamp_start": "1491945557", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11-31-2017", "timestamp_end": "1491945571", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:17.029781Z"}, {"id": 2169, "component": "pendencies", "context": {"timestamp_start": "1491945571", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11/31/2017", "timestamp_end": "1491945577", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:31.833808Z"}, {"id": 2170, "component": "pendencies", "context": {"timestamp_start": "1491945578", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "hey", "timestamp_end": "1491945580", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:38.099706Z"}, {"id": 2171, "component": "pendencies", "context": {"timestamp_start": "1491945580", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1491945611", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:40.889903Z"}, {"id": 2172, "component": "pendencies", "context": {"timestamp_start": "1491945611", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "13/04/2017", "timestamp_end": "1491945804", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:20:11.893170Z"}, {"id": 2173, "component": "pendencies", "context": {"timestamp_start": "1491945804", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491945813"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:23:24.762807Z"}, {"id": 2174, "component": "pendencies", "context": {"timestamp_start": "1491945813", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1491945829", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:23:33.432888Z"}, {"id": 2175, "component": "pendencies", "context": {"subject_id": 459, "timestamp_start": "1491945830", "subject_slug": "acustica", "view_page": 1, "subject_name": "AC\u00daSTICA"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:23:50.005128Z"}, {"id": 2179, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:01:55.058108Z"}, {"id": 2184, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:10:12.294248Z"}, {"id": 2185, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491948957", "subject_id": 459, "timestamp_start": "1491948954", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:15:54.043169Z"}, {"id": 2186, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491948962", "category_id": 22, "timestamp_start": "1491948957"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:15:57.853109Z"}, {"id": 2187, "component": "pendencies", "context": {"timestamp_start": "1491948962", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491948983"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:16:02.106115Z"}, {"id": 2188, "component": "pendencies", "context": {"timestamp_start": "1491948984", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491948991"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:16:24.139829Z"}, {"id": 2189, "component": "pendencies", "context": {"timestamp_start": "1491948991", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1491948994", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:16:31.732021Z"}, {"id": 2190, "component": "pendencies", "context": {"timestamp_start": "1491948994", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491948996"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:16:34.736917Z"}, {"id": 2191, "component": "pendencies", "context": {"timestamp_start": "1491949038", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491949173"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:17:18.291869Z"}, {"id": 2192, "component": "pendencies", "context": {"subject_id": 459, "timestamp_start": "1491949173", "subject_slug": "acustica", "view_page": 1, "subject_name": "AC\u00daSTICA"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:19:33.749609Z"}, {"id": 2193, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:39:40.053706Z"}, {"id": 2199, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:21:12.724246Z"}, {"id": 2200, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492125909", "subject_id": 459, "timestamp_start": "1492125906", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:25:06.780756Z"}, {"id": 2201, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126007", "subject_id": 459, "timestamp_start": "1492125909", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:25:09.273239Z"}, {"id": 2212, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126358", "subject_id": 459, "timestamp_start": "1492126357", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:32:37.557078Z"}, {"id": 2202, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126011", "subject_id": 459, "timestamp_start": "1492126010", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:26:50.137306Z"}, {"id": 2223, "component": "pendencies", "context": {"timestamp_start": "1492126904", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492126909", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:44.272424Z"}, {"id": 2203, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126103", "subject_id": 459, "timestamp_start": "1492126011", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:26:51.234380Z"}, {"id": 2213, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126732", "subject_id": 459, "timestamp_start": "1492126358", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:32:38.624614Z"}, {"id": 2204, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126106", "subject_id": 459, "timestamp_start": "1492126105", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:28:25.440805Z"}, {"id": 2205, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126227", "subject_id": 459, "timestamp_start": "1492126106", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:28:26.670663Z"}, {"id": 2219, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126894", "subject_id": 459, "timestamp_start": "1492126799", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:39:59.389663Z"}, {"id": 2206, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126231", "subject_id": 459, "timestamp_start": "1492126230", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:30:30.572946Z"}, {"id": 2207, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126241", "subject_id": 459, "timestamp_start": "1492126231", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:30:31.791530Z"}, {"id": 2214, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126736", "subject_id": 459, "timestamp_start": "1492126735", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:38:55.254223Z"}, {"id": 2208, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126245", "subject_id": 459, "timestamp_start": "1492126244", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:30:44.238059Z"}, {"id": 2209, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126259", "subject_id": 459, "timestamp_start": "1492126245", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:30:45.283407Z"}, {"id": 2215, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126769", "subject_id": 459, "timestamp_start": "1492126736", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:38:56.550061Z"}, {"id": 2210, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126264", "subject_id": 459, "timestamp_start": "1492126263", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:31:03.689993Z"}, {"id": 2211, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126355", "subject_id": 459, "timestamp_start": "1492126264", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:31:04.890991Z"}, {"id": 2220, "component": "pendencies", "context": {"timestamp_start": "1492126897", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1492126898"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:37.180574Z"}, {"id": 2216, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126773", "subject_id": 459, "timestamp_start": "1492126772", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:39:31.963616Z"}, {"id": 2221, "component": "pendencies", "context": {"timestamp_start": "1492126898", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492126900", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:38.582164Z"}, {"id": 2217, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126795", "subject_id": 459, "timestamp_start": "1492126773", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:39:33.010223Z"}, {"id": 2218, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126799", "subject_id": 459, "timestamp_start": "1492126798", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:39:57.983037Z"}, {"id": 2222, "component": "pendencies", "context": {"timestamp_start": "1492126900", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492126904", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:40.800195Z"}, {"id": 2224, "component": "pendencies", "context": {"timestamp_start": "1492126909", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492126944", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:49.645436Z"}, {"id": 2225, "component": "pendencies", "context": {"timestamp_start": "1492126944", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1492127266"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:42:24.357067Z"}, {"id": 2232, "component": "pendencies", "context": {"timestamp_start": "1492127266", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127373", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:47:46.851877Z"}, {"id": 2233, "component": "pendencies", "context": {"timestamp_start": "1492127373", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127416", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:49:33.635556Z"}, {"id": 2240, "component": "pendencies", "context": {"timestamp_start": "1492127731", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127733", "history_page": "3"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:31.133416Z"}, {"id": 2235, "component": "pendencies", "context": {"timestamp_start": "1492127541", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:52:21.431470Z"}, {"id": 2234, "component": "pendencies", "context": {"timestamp_start": "1492127416", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127555", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:50:16.367796Z"}, {"id": 2236, "component": "pendencies", "context": {"timestamp_start": "1492127555", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127593", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:52:35.212062Z"}, {"id": 2237, "component": "pendencies", "context": {"timestamp_start": "1492127593", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127649", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:53:13.432324Z"}, {"id": 2238, "component": "pendencies", "context": {"timestamp_start": "1492127649", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127728", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:54:09.524902Z"}, {"id": 2239, "component": "pendencies", "context": {"timestamp_start": "1492127728", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127731", "history_page": "2"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:28.355818Z"}, {"id": 2241, "component": "pendencies", "context": {"timestamp_start": "1492127733", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127735", "history_page": "4"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:33.684922Z"}, {"id": 2242, "component": "pendencies", "context": {"timestamp_start": "1492127735", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127737", "history_page": "5"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:35.445654Z"}, {"id": 2243, "component": "pendencies", "context": {"timestamp_start": "1492127737", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127739", "history_page": "6"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:37.251554Z"}, {"id": 2244, "component": "pendencies", "context": {"timestamp_start": "1492127739", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127742", "history_page": "7"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:39.998168Z"}, {"id": 2245, "component": "pendencies", "context": {"timestamp_start": "1492127742", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127743", "history_page": "8"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:42.133961Z"}, {"id": 2246, "component": "pendencies", "context": {"timestamp_start": "1492127743", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127745", "history_page": "9"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:43.943443Z"}, {"id": 2247, "component": "pendencies", "context": {"timestamp_start": "1492127745", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127756", "history_page": "10"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:45.897845Z"}, {"id": 2248, "component": "pendencies", "context": {"timestamp_start": "1492127757", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1492127771"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:57.022979Z"}, {"id": 2249, "component": "resources", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "webpage_slug": "revenge", "subject_slug": "acustica", "topic_id": 30, "timestamp_start": "1492127771", "topic_slug": "repositorio", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "timestamp_end": "1492127776", "webpage_id": 1, "category_id": 22, "webpage_name": "Revenge"}, "action": "view", "resource": "webpage", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:11.291806Z"}, {"id": 2250, "component": "mural", "context": {"timestamp_start": "1492127776", "resource_name": "Revenge", "subject_id": 459, "resource_id": 1, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "revenge", "timestamp_end": "1492127779"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:16.753307Z"}, {"id": 2251, "component": "resources", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "webpage_slug": "revenge", "subject_slug": "acustica", "topic_id": 30, "timestamp_start": "1492127779", "topic_slug": "repositorio", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "timestamp_end": "1492127780", "webpage_id": 1, "category_id": 22, "webpage_name": "Revenge"}, "action": "view", "resource": "webpage", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:19.499351Z"}, {"id": 2252, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1492127783", "category_id": 22, "timestamp_start": "1492127780"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:20.859941Z"}, {"id": 2253, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492127788", "subject_id": 459, "timestamp_start": "1492127785", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:25.169011Z"}, {"id": 2255, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-14T00:21:41.686250Z"}, {"id": 2259, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-15T00:51:14.061387Z"}, {"id": 2254, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492217474", "subject_id": 459, "timestamp_start": "1492127788", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:28.959612Z"}, {"id": 2260, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492217494", "subject_id": 459, "timestamp_start": "1492217480", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-15T00:51:19.995842Z"}, {"id": 2586, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-26T01:36:33.745524Z"}, {"id": 2262, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-15T01:16:47.696572Z"}, {"id": 2261, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492995562", "subject_id": 459, "timestamp_start": "1492217494", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-15T00:51:34.056885Z"}, {"id": 2372, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T00:59:21.981258Z"}, {"id": 2373, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492995610", "subject_id": 459, "timestamp_start": "1492995567", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T00:59:27.281209Z"}, {"id": 2382, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032945", "subject_id": 459, "timestamp_start": "1493032865", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:21:05.272760Z"}, {"id": 2375, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T01:20:18.161716Z"}, {"id": 2377, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:12:26.191980Z"}, {"id": 2374, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032346", "subject_id": 459, "timestamp_start": "1492995613", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T01:00:13.607041Z"}, {"id": 2380, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032682", "subject_id": 459, "timestamp_start": "1493032591", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:16:31.039008Z"}, {"id": 2378, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032468", "subject_id": 459, "timestamp_start": "1493032349", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:12:29.644103Z"}, {"id": 2379, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032588", "subject_id": 459, "timestamp_start": "1493032471", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:14:31.716757Z"}, {"id": 2381, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032862", "subject_id": 459, "timestamp_start": "1493032685", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:18:05.403084Z"}, {"id": 2385, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032969", "subject_id": 459, "timestamp_start": "1493032948", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:22:28.461096Z"}, {"id": 2383, "component": "pendencies", "context": {}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:21:16.252767Z"}, {"id": 2384, "component": "pendencies", "context": {"notification_id": 3237, "notification": "Visualizar System"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:21:19.653812Z"}, {"id": 2387, "component": "pendencies", "context": {"notification_id": 3237, "notification": "Visualizar System"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:22:56.726714Z"}, {"id": 2386, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033066", "subject_id": 459, "timestamp_start": "1493032972", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:22:52.192138Z"}, {"id": 2388, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033080", "subject_id": 459, "timestamp_start": "1493033069", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:24:29.447632Z"}, {"id": 2389, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033136", "subject_id": 459, "timestamp_start": "1493033082", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:24:42.549281Z"}, {"id": 2401, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033725", "subject_id": 459, "timestamp_start": "1493033723", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:35:23.153863Z"}, {"id": 2391, "component": "pendencies", "context": {"notification_id": 3237, "notification": "Visualizar System"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:25:49.616646Z"}, {"id": 2390, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033184", "subject_id": 459, "timestamp_start": "1493033138", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:25:38.898596Z"}, {"id": 2402, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T12:10:29.965789Z"}, {"id": 2392, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033678", "subject_id": 459, "timestamp_start": "1493033187", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:26:27.067783Z"}, {"id": 2393, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033683", "subject_id": 459, "timestamp_start": "1493033680", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:40.778746Z"}, {"id": 2394, "component": "resources", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "webpage_slug": "angels-calling", "subject_slug": "acustica", "topic_id": 30, "timestamp_start": "1493033683", "topic_slug": "repositorio", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "timestamp_end": "1493033692", "webpage_id": 68, "category_id": 22, "webpage_name": "Angels calling"}, "action": "view", "resource": "webpage", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:43.787750Z"}, {"id": 2395, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033692", "subject_id": 459, "timestamp_start": "1493033688", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:48.345307Z"}, {"id": 2396, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1493033705", "category_id": 22, "timestamp_start": "1493033692"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:52.339304Z"}, {"id": 2397, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033705", "subject_id": 459, "timestamp_start": "1493033700", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:59.986089Z"}, {"id": 2398, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1493033713", "category_id": 22, "timestamp_start": "1493033705"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:35:05.066338Z"}, {"id": 2399, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033713", "subject_id": 459, "timestamp_start": "1493033711", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:35:11.051070Z"}, {"id": 2400, "component": "category", "context": {"timestamp_start": "1493033716", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1493033725"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:35:16.652183Z"}, {"id": 2557, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:08:11.603340Z"}, {"id": 2558, "component": "mural", "context": {"timestamp_end": "1495573702", "timestamp_start": "1495573699"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:08:19.229099Z"}, {"id": 2560, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22}, "action": "create_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:08:39.168190Z"}, {"id": 2559, "component": "mural", "context": {"timestamp_start": "1495573709", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1495574216"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:08:29.012379Z"}, {"id": 2562, "component": "mural", "context": {"category_slug": "artes", "category_name": "ARTES", "category_id": 6}, "action": "create_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:17:11.351727Z"}, {"id": 2561, "component": "mural", "context": {"timestamp_start": "1495574219", "category_slug": "artes", "category_name": "ARTES", "category_id": 6, "timestamp_end": "1495574237"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:16:59.492679Z"}, {"id": 2564, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22}, "action": "create_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:17:30.479031Z"}, {"id": 2565, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "128", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:30:13.435109Z"}, {"id": 2563, "component": "mural", "context": {"timestamp_start": "1495574237", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1495575021"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:17:17.902158Z"}, {"id": 2567, "component": "mural", "context": {"category_slug": "ecologia", "category_name": "ECONOMIA", "post_id": "62", "category_id": 12}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:30:30.236424Z"}, {"id": 2566, "component": "mural", "context": {"timestamp_start": "1495575021", "category_slug": "ecologia", "category_name": "ECONOMIA", "category_id": 12, "timestamp_end": "1495575095"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:30:21.372430Z"}, {"id": 2577, "component": "mural", "context": {"resource_name": "Revenge", "post_id": "124", "subject_id": 459, "resource_id": 1, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "revenge"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:37:43.750379Z"}, {"id": 2576, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1495575478", "subject_id": 459, "timestamp_start": "1495575454", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:37:34.193592Z"}, {"id": 2575, "component": "mural", "context": {"subject_name": "CRIA\u00c7\u00c3O DE ANIMAIS", "subject_id": 790, "subject_slug": "criacao-de-animais"}, "action": "create_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:37:23.764808Z"}, {"id": 2574, "component": "mural", "context": {"subject_name": "CRIA\u00c7\u00c3O DE ANIMAIS", "timestamp_end": "1495575453", "subject_id": 790, "timestamp_start": "1495575434", "subject_slug": "criacao-de-animais"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:37:14.769228Z"}, {"id": 2587, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1495762614", "subject_id": 459, "timestamp_start": "1495762601", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-26T01:36:41.713465Z"}, {"id": 2588, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-26T01:36:54.476891Z"}, {"id": 2636, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-26T02:27:25.484603Z"}], "password": "pbkdf2_sha256$30000$5gbyp9Al3C2n$rroJzhQWFLetSzLJto5kyVC4z2hycFSWhH8uq3lhazI=", "last_login": "2017-05-26T01:36:33.649932Z", "is_superuser": false, "email": "e180@amadeus.br", "username": "e", "last_name": "180", "social_name": "Estudante 180", "description": "<p>Estudante da Universidade Federal do Vale do S\u00e3o Francisco - <b>UNIVASF</b>.</p>", "image": "/uploads/users/hqdefault.jpg", "date_created": "2017-01-01T03:00:00Z", "last_update": "2017-02-06T18:58:16.633761Z", "show_email": 1, "is_staff": false, "is_active": true, "groups": [], "user_permissions": []}], "_my_subclass": "webpage", "name": "Doug", "slug": "doug", "brief_description": "<p>Today</p>", "show_window": true, "all_students": false, "visible": false, "order": 1, "create_date": "2017-01-23T17:36:14.900287Z", "last_update": "2017-01-24T17:33:39.433016Z", "content": "Freaky man"}, {"id": 20, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 69, "name": "noine"}, {"id": 70, "name": "nine"}], "pendencies_resource": [], "groups": [], "students": [], "_my_subclass": "webpage", "name": "Myself", "slug": "myself", "brief_description": "<p>Is up to me</p>", "show_window": false, "all_students": true, "visible": false, "order": 2, "create_date": "2017-01-23T22:59:42.592301Z", "last_update": "2017-01-24T17:34:20.147284Z", "content": "<title>Sold my soul</title><h5>I brought this all <em>upon myself<br>Dont stop me now!!</em></h5>"}, {"id": 42, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 95, "name": "history"}], "pendencies_resource": [], "groups": [], "students": [{"id": 178, "log": [], "password": "pbkdf2_sha256$30000$5gbyp9Al3C2n$rroJzhQWFLetSzLJto5kyVC4z2hycFSWhH8uq3lhazI=", "last_login": "2017-01-23T22:49:33.870448Z", "is_superuser": false, "email": "e177@amadeus.br", "username": "e", "last_name": "177", "social_name": "Estudante 177", "description": "<p>Estudante da Universidade Federal do Vale do S\u00e3o Francisco - <b>UNIVASF</b>.</p>", "image": "/uploads/users/760fc8ed80eeedde8633f8fa5e50ef0a_VzyKGEh.jpg", "date_created": "2017-01-01T03:00:00Z", "last_update": "2017-01-18T22:55:04.744047Z", "show_email": 1, "is_staff": false, "is_active": true, "groups": [], "user_permissions": []}], "_my_subclass": "webpage", "name": "History goes", "slug": "history-goes", "brief_description": "<p>How</p>", "show_window": false, "all_students": false, "visible": false, "order": 4, "create_date": "2017-01-24T21:57:13.600718Z", "last_update": "2017-01-24T21:57:13.812438Z", "content": "<p>ON</p>"}], [], [{"id": 41, "file_content": "files/formulariobolsista.doc.docx", "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 93, "name": "last"}, {"id": 94, "name": "mistake"}], "pendencies_resource": [{"id": 19, "action": "view", "begin_date": "2017-01-26T22:54:00Z", "end_date": "2017-02-10T22:54:00Z", "limit_date": null}], "groups": [], "students": [], "_my_subclass": "filelink", "name": "Secret", "slug": "secret", "brief_description": "<p>Do we create a modern myth?</p>", "show_window": true, "all_students": true, "visible": false, "order": 3, "create_date": "2017-01-24T21:55:44.193797Z", "last_update": "2017-01-24T21:55:44.330406Z"}, {"id": 46, "file_content": "files/jutificativa_voto.pdf", "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 100, "name": "just"}, {"id": 101, "name": "game"}], "pendencies_resource": [], "groups": [], "students": [{"id": 181, "log": [{"id": 759, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819337", "subject_id": 459, "timestamp_start": "1487819274", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:07:54.790064Z"}, {"id": 762, "component": "pendencies", "context": {"notification_id": 1264, "notification": "Criar Teste 2"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:09:05.305320Z"}, {"id": 205, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485470536", "category_id": 22, "timestamp_start": "1485470531"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:11.752255Z"}, {"id": 204, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485470531", "category_id": 22, "timestamp_start": "1485470530"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:10.443457Z"}, {"id": 206, "component": "topic", "context": {"topic_id": 28, "category_name": "F\u00cdSICA", "topic_slug": "topico", "subject_id": 459, "topic_name": "T\u00f3pico", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485470536", "category_id": 22, "timestamp_start": "1485470533", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:13.800455Z"}, {"id": 300, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817823"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:23.718744Z"}, {"id": 207, "component": "resources", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "webpage_slug": "runaway", "subject_slug": "acustica", "topic_id": 28, "timestamp_start": "1485470536", "topic_slug": "topico", "topic_name": "T\u00f3pico", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485470541", "webpage_id": 34, "category_id": 22, "webpage_name": "Runaway"}, "action": "view", "resource": "webpage", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:16.899890Z"}, {"id": 208, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485470541"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:21.748456Z"}, {"id": 761, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819596", "subject_id": 459, "timestamp_start": "1487819340", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:09:00.105224Z"}, {"id": 210, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-27T00:00:27.896353Z"}, {"id": 209, "component": "topic", "context": {"topic_id": 28, "category_name": "F\u00cdSICA", "topic_slug": "topico", "subject_id": 459, "topic_name": "T\u00f3pico", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485551249", "category_id": 22, "timestamp_start": "1485470542", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:22.309161Z"}, {"id": 763, "component": "mural", "context": {"timestamp_end": "1487819618", "timestamp_start": "1487819597"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:13:17.210969Z"}, {"id": 242, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-28T00:14:10.442184Z"}, {"id": 235, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485551258", "category_id": 22, "timestamp_start": "1485551257"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-27T21:07:37.363710Z"}, {"id": 236, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-27T21:07:46.302234Z"}, {"id": 248, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-28T00:40:09.156424Z"}, {"id": 252, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T17:03:06.179857Z"}, {"id": 254, "component": "subject", "context": {"search_for": "matem\u00e1tica"}, "action": "search", "resource": "subject/resources", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T17:32:54.742653Z"}, {"id": 255, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485800449", "category_id": 22, "timestamp_start": "1485800431"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T18:20:31.082273Z"}, {"id": 256, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T18:20:49.508637Z"}, {"id": 272, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T18:30:48.022453Z"}, {"id": 296, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T19:51:02.361646Z"}, {"id": 297, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817067", "category_id": 22, "timestamp_start": "1485817029"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T22:57:09.534154Z"}, {"id": 298, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817823", "category_id": 22, "timestamp_start": "1485817816"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:16.573429Z"}, {"id": 302, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817823"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:23.999732Z"}, {"id": 303, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.167376Z"}, {"id": 324, "component": "category", "context": {"timestamp_start": "1485976208", "category_slug": "administracao", "category_name": "ADMINISTRA\u00c7\u00c3O", "category_id": 1, "timestamp_end": "1485976214"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:10:08.328805Z"}, {"id": 304, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.321138Z"}, {"id": 313, "component": "topic", "context": {"topic_id": 28, "category_name": "F\u00cdSICA", "topic_slug": "topico", "subject_id": 459, "topic_name": "T\u00f3pico", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485817863", "category_id": 22, "timestamp_start": "1485817861", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:11:01.913755Z"}, {"id": 314, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:52:56.763660Z"}, {"id": 299, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817824", "category_id": 22, "timestamp_start": "1485817823"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:23.507849Z"}, {"id": 305, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.948644Z"}, {"id": 306, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.964254Z"}, {"id": 301, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817824", "category_id": 22, "timestamp_start": "1485817823"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:23.893312Z"}, {"id": 307, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.982882Z"}, {"id": 308, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.983647Z"}, {"id": 309, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817856", "category_id": 22, "timestamp_start": "1485817825"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:25.040109Z"}, {"id": 310, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817856"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:56.623919Z"}, {"id": 315, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485837050", "category_id": 22, "timestamp_start": "1485837013"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T04:30:13.979178Z"}, {"id": 311, "component": "topic", "context": {"topic_id": 31, "category_name": "F\u00cdSICA", "topic_slug": "invisible", "subject_id": 459, "topic_name": "Visible", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485817860", "category_id": 22, "timestamp_start": "1485817858", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:58.793794Z"}, {"id": 316, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T12:47:37.896380Z"}, {"id": 312, "component": "topic", "context": {"topic_id": 29, "category_name": "F\u00cdSICA", "topic_slug": "troia", "subject_id": 459, "topic_name": "troia", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485817861", "category_id": 22, "timestamp_start": "1485817860", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:11:00.819240Z"}, {"id": 317, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T18:37:38.618881Z"}, {"id": 318, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T19:12:32.773778Z"}, {"id": 319, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T23:28:13.691378Z"}, {"id": 320, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T14:34:07.639190Z"}, {"id": 323, "component": "category", "context": {"timestamp_start": "1485974786", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1485974790"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T18:46:25.990585Z"}, {"id": 321, "component": "category", "context": {"timestamp_start": "1485974281", "category_slug": "agronomia", "category_name": "AGRONOMIA", "category_id": 2, "timestamp_end": "1485974735"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T18:38:01.194092Z"}, {"id": 322, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485974772", "category_id": 22, "timestamp_start": "1485974769"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T18:46:09.361339Z"}, {"id": 325, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485976246", "category_id": 22, "timestamp_start": "1485976245"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:10:45.062924Z"}, {"id": 326, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485976264", "category_id": 22, "timestamp_start": "1485976246"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:10:46.849697Z"}, {"id": 327, "component": "topic", "context": {"topic_id": 31, "category_name": "F\u00cdSICA", "topic_slug": "invisible", "subject_id": 459, "topic_name": "Visible", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485976261", "category_id": 22, "timestamp_start": "1485976260", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:11:00.675879Z"}, {"id": 328, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:11:04.309321Z"}, {"id": 767, "component": "mural", "context": {"post_id": "120"}, "action": "delete_post", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:18:20.846208Z"}, {"id": 356, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-02T17:51:57.991297Z"}, {"id": 764, "component": "mural", "context": {"timestamp_end": "1487820251", "timestamp_start": "1487819865"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:17:45.551898Z"}, {"id": 768, "component": "mural", "context": {"timestamp_end": "1487820270", "timestamp_start": "1487820251"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:24:11.371756Z"}, {"id": 770, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "83", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:25:32.108185Z"}, {"id": 500, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-05T03:49:10.189731Z"}, {"id": 498, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-04T02:16:03.713455Z"}, {"id": 506, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-06T21:52:10.915119Z"}, {"id": 514, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-08T20:24:50.861429Z"}, {"id": 586, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-13T20:03:44.925986Z"}, {"id": 1943, "component": "chat", "context": {"timestamp_end": "1491527631", "timestamp_start": "1491527509"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:49.574701Z"}, {"id": 593, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-14T15:01:30.551792Z"}, {"id": 595, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-14T21:40:49.191265Z"}, {"id": 608, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-16T10:30:44.154434Z"}, {"id": 616, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-17T00:49:36.985050Z"}, {"id": 620, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-17T23:46:37.967352Z"}, {"id": 632, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-18T02:45:09.855062Z"}, {"id": 633, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-18T03:10:14.618203Z"}, {"id": 656, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-18T16:27:53.309528Z"}, {"id": 760, "component": "pendencies", "context": {"notification_id": 1264, "notification": "Criar Teste 2"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:08:03.959137Z"}, {"id": 752, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T01:44:31.566063Z"}, {"id": 747, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487811503", "subject_id": 459, "timestamp_start": "1487811472", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T00:57:52.930523Z"}, {"id": 748, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487811515", "subject_id": 459, "timestamp_start": "1487811503", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T00:58:23.491201Z"}, {"id": 749, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487811640", "subject_id": 459, "timestamp_start": "1487811515", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T00:58:35.675991Z"}, {"id": 750, "component": "pendencies", "context": {"timestamp_start": "1487811640", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1487811667", "history_page": "2"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T01:00:40.332145Z"}, {"id": 751, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487811714", "subject_id": 459, "timestamp_start": "1487811667", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T01:01:07.531334Z"}, {"id": 755, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819072", "subject_id": 459, "timestamp_start": "1487818941", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:02:21.881897Z"}, {"id": 754, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487818941", "subject_id": 459, "timestamp_start": "1487818935", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:02:15.907517Z"}, {"id": 756, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819088", "subject_id": 459, "timestamp_start": "1487819079", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:04:39.304989Z"}, {"id": 757, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819248", "subject_id": 459, "timestamp_start": "1487819083", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:04:43.266285Z"}, {"id": 758, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819272", "subject_id": 459, "timestamp_start": "1487819248", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:07:28.517853Z"}, {"id": 765, "component": "mural", "context": {}, "action": "create_post", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:17:54.672547Z"}, {"id": 766, "component": "mural", "context": {"post_id": "120"}, "action": "edit_post", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:18:08.851857Z"}, {"id": 769, "component": "mural", "context": {"post_id": "119"}, "action": "create_comment", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:24:21.928140Z"}, {"id": 771, "component": "mural", "context": {"category_name": "F\u00cdSICA", "post_id": "118", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:25:52.653247Z"}, {"id": 772, "component": "mural", "context": {"category_name": "F\u00cdSICA", "post_id": "91", "subject_id": 509, "category_slug": "fisica", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "category_id": 22}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:26:34.622097Z"}, {"id": 773, "component": "mural", "context": {"category_name": "F\u00cdSICA", "post_id": "91", "subject_id": 509, "category_slug": "fisica", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "category_id": 22}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:27:55.609252Z"}, {"id": 774, "component": "mural", "context": {"subject_name": "AERONOMIA", "post_id": "91", "subject_id": 509, "subject_slug": "aeronomia"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:29:02.640123Z"}, {"id": 775, "component": "mural", "context": {"subject_name": "AERONOMIA", "post_id": "91", "subject_id": 509, "subject_slug": "aeronomia"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:30:02.458851Z"}, {"id": 776, "component": "mural", "context": {"category_name": "F\u00cdSICA", "post_id": "57", "subject_id": 509, "category_slug": "fisica", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:30:24.187150Z"}, {"id": 777, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "56", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:32:05.419796Z"}, {"id": 778, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": "117", "subject_id": 459, "subject_slug": "acustica"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:32:29.703509Z"}, {"id": 779, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "56", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:32:51.016742Z"}, {"id": 780, "component": "mural", "context": {"resource_name": "Testando", "post_id": "104", "subject_id": 459, "resource_id": 47, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "testando"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:37:06.917608Z"}, {"id": 781, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": "117", "subject_id": 459, "subject_slug": "acustica"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:37:25.110939Z"}, {"id": 782, "component": "mural", "context": {"resource_name": "Testando", "post_id": "104", "subject_id": 459, "resource_id": 47, "comment_id": "64", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "testando"}, "action": "edit_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:38:55.588303Z"}, {"id": 783, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": "117", "subject_id": 459, "comment_id": "65", "subject_slug": "acustica"}, "action": "edit_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:39:11.828612Z"}, {"id": 784, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "56", "category_id": 22, "comment_id": "62"}, "action": "edit_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:39:37.546127Z"}, {"id": 786, "component": "mural", "context": {"post_id": "119", "comment_id": "51"}, "action": "edit_comment", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:39:58.143755Z"}, {"id": 785, "component": "mural", "context": {"timestamp_end": "1487821254", "timestamp_start": "1487821183"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:39:43.778697Z"}, {"id": 787, "component": "mural", "context": {"resource_name": "Testando", "post_id": "104", "subject_id": 459, "resource_id": 47, "comment_id": "64", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "testando"}, "action": "delete_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:04.684362Z"}, {"id": 788, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "56", "category_id": 22, "comment_id": "62"}, "action": "delete_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:19.841564Z"}, {"id": 789, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": "117", "subject_id": 459, "comment_id": "65", "subject_slug": "acustica"}, "action": "delete_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:32.368296Z"}, {"id": 791, "component": "mural", "context": {"post_id": "119", "comment_id": "51"}, "action": "delete_comment", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:45.087772Z"}, {"id": 790, "component": "mural", "context": {"timestamp_end": "1487821570", "timestamp_start": "1487821299"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:39.638918Z"}, {"id": 792, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22}, "action": "create_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:46:17.426384Z"}, {"id": 793, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": 121, "category_id": 22}, "action": "edit_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:46:36.152350Z"}, {"id": 794, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": 121, "category_id": 22}, "action": "delete_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:46:44.551370Z"}, {"id": 795, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "subject_id": 459, "subject_slug": "acustica"}, "action": "create_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:07.758060Z"}, {"id": 796, "component": "mural", "context": {"resource_name": "Found here", "subject_id": 459, "resource_id": 29, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "found-here"}, "action": "create_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:20.229336Z"}, {"id": 797, "component": "mural", "context": {"resource_name": "Found here", "post_id": 123, "subject_id": 459, "resource_id": 29, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "found-here"}, "action": "edit_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:39.066914Z"}, {"id": 798, "component": "mural", "context": {"resource_name": "Found here", "post_id": 122, "subject_id": 459, "resource_id": 29, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "found-here"}, "action": "edit_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:50.112559Z"}, {"id": 799, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": 122, "subject_id": 459, "subject_slug": "acustica"}, "action": "delete_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:58.543414Z"}, {"id": 800, "component": "mural", "context": {"resource_name": "Found here", "post_id": 123, "subject_id": 459, "resource_id": 29, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "found-here"}, "action": "delete_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:52:01.913353Z"}, {"id": 801, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487822069", "subject_id": 459, "timestamp_start": "1487822058", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:54:18.886887Z"}, {"id": 802, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1487822092", "category_id": 22, "timestamp_start": "1487822069"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:54:29.908068Z"}, {"id": 803, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1487822218", "category_id": 22, "timestamp_start": "1487822217"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:56:57.566068Z"}, {"id": 804, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1487822222", "category_id": 22, "timestamp_start": "1487822218"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:56:58.938426Z"}, {"id": 805, "component": "subject", "context": {"category_name": "GEOCI\u00caNCIAS", "subject_id": 509, "category_slug": "geociencias", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "timestamp_end": "1487822228", "category_id": 23, "timestamp_start": "1487822227"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:57:07.421128Z"}, {"id": 806, "component": "subject", "context": {"category_name": "GEOCI\u00caNCIAS", "subject_id": 509, "category_slug": "geociencias", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "timestamp_end": "1487822230", "category_id": 23, "timestamp_start": "1487822228"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:57:08.643965Z"}, {"id": 818, "component": "mural", "context": {"timestamp_end": "1487822925", "timestamp_start": "1487822922"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:08:42.820267Z"}, {"id": 820, "component": "mural", "context": {"subject_name": "AERONOMIA", "timestamp_end": "1487822950", "subject_id": 509, "timestamp_start": "1487822942", "subject_slug": "aeronomia"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:09:02.752121Z"}, {"id": 819, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487822942", "subject_id": 459, "timestamp_start": "1487822929", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:08:49.664237Z"}, {"id": 821, "component": "mural", "context": {"timestamp_start": "1487822964", "category_slug": "ecologia", "category_name": "ECONOMIA", "category_id": 12, "timestamp_end": "1487822972"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:09:24.119330Z"}, {"id": 822, "component": "mural", "context": {"timestamp_start": "1487822972", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1487822978"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:09:32.720221Z"}, {"id": 824, "component": "mural", "context": {"timestamp_start": "1487823004", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1487823011"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:10:04.914334Z"}, {"id": 823, "component": "mural", "context": {"timestamp_start": "1487823004", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1487823023"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:10:04.537879Z"}, {"id": 826, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823060", "subject_id": 459, "timestamp_start": "1487823025", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:10:25.399030Z"}, {"id": 844, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:17:08.034061Z"}, {"id": 838, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823262", "subject_id": 459, "timestamp_start": "1487823216", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:13:36.593832Z"}, {"id": 835, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823262", "subject_id": 459, "timestamp_start": "1487823200", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:13:19.973986Z"}, {"id": 837, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823262", "subject_id": 459, "timestamp_start": "1487823216", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:13:36.239900Z"}, {"id": 828, "component": "mural", "context": {"subject_name": "AERONOMIA", "timestamp_end": "1487823086", "subject_id": 509, "timestamp_start": "1487823068", "subject_slug": "aeronomia"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:11:08.658689Z"}, {"id": 825, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823133", "subject_id": 459, "timestamp_start": "1487823025", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:10:25.024652Z"}, {"id": 827, "component": "mural", "context": {"subject_name": "AERONOMIA", "timestamp_end": "1487823133", "subject_id": 509, "timestamp_start": "1487823068", "subject_slug": "aeronomia"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:11:08.283495Z"}, {"id": 829, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823133", "subject_id": 459, "timestamp_start": "1487823086", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:11:26.037229Z"}, {"id": 830, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823133", "subject_id": 459, "timestamp_start": "1487823086", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:11:26.421082Z"}, {"id": 839, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823274", "subject_id": 459, "timestamp_start": "1487823264", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:14:24.814253Z"}, {"id": 831, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823152", "subject_id": 459, "timestamp_start": "1487823138", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:12:18.915670Z"}, {"id": 832, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823152", "subject_id": 459, "timestamp_start": "1487823139", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:12:19.310937Z"}, {"id": 834, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823184", "subject_id": 459, "timestamp_start": "1487823155", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:12:35.803614Z"}, {"id": 833, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823198", "subject_id": 459, "timestamp_start": "1487823155", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:12:35.349965Z"}, {"id": 840, "component": "mural", "context": {"subject_name": "AERONOMIA", "timestamp_end": "1487823283", "subject_id": 509, "timestamp_start": "1487823279", "subject_slug": "aeronomia"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:14:39.617722Z"}, {"id": 836, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823209", "subject_id": 459, "timestamp_start": "1487823200", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:13:20.363273Z"}, {"id": 841, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823288", "subject_id": 459, "timestamp_start": "1487823283", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:14:43.420174Z"}, {"id": 842, "component": "mural", "context": {"timestamp_start": "1487823308", "category_slug": "ecologia", "category_name": "ECONOMIA", "category_id": 12, "timestamp_end": "1487823317"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:15:08.906391Z"}, {"id": 843, "component": "mural", "context": {"timestamp_start": "1487823317", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1487823325"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:15:17.374624Z"}, {"id": 1057, "component": "mural", "context": {"timestamp_start": "1488237433"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-27T23:17:13.774687Z"}, {"id": 1100, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488503911", "category_id": 22, "timestamp_start": "1488503910"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-03T01:18:30.621679Z"}, {"id": 1102, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-03T01:18:40.974286Z"}, {"id": 1101, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488503920", "category_id": 22, "timestamp_start": "1488503911"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-03T01:18:31.947009Z"}, {"id": 1107, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-03T01:47:20.608235Z"}, {"id": 1135, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488843766", "category_id": 22, "timestamp_start": "1488843765"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:42:45.788392Z"}, {"id": 1143, "component": "resources", "context": {"topic_slug": "repositorio", "subject_id": 459, "category_slug": "fisica", "goals_slug": "snuff", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 70, "timestamp_start": "1488844187", "topic_id": 30, "goals_name": "Snuff", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:49:47.208564Z"}, {"id": 1136, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488843808", "category_id": 22, "timestamp_start": "1488843766"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:42:46.977064Z"}, {"id": 1141, "component": "resources", "context": {"topic_slug": "repositorio", "subject_id": 459, "category_slug": "fisica", "goals_slug": "snuff", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 70, "timestamp_start": "1488843808", "topic_id": 30, "goals_name": "Snuff", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488843810", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:43:28.284675Z"}, {"id": 1142, "component": "resources", "context": {"topic_slug": "repositorio", "subject_id": 459, "category_slug": "fisica", "goals_slug": "snuff", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 70, "topic_id": 30, "goals_name": "Snuff", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "update", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:49:47.133749Z"}, {"id": 1144, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-07T00:10:48.186363Z"}, {"id": 1174, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488936573", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "submit", "resource": "goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:39.285570Z"}, {"id": 1170, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488936569", "category_id": 22, "timestamp_start": "1488936568"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:28.317125Z"}, {"id": 1171, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488936573", "category_id": 22, "timestamp_start": "1488936569"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:29.784524Z"}, {"id": 1172, "component": "topic", "context": {"topic_id": 32, "category_name": "F\u00cdSICA", "topic_slug": "now-invisble", "subject_id": 459, "topic_name": "Now Invisble", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488936573", "category_id": 22, "timestamp_start": "1488936571", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:31.953040Z"}, {"id": 1173, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488936573", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488936579", "category_id": 22}, "action": "view", "resource": "goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:33.676092Z"}, {"id": 1175, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488936579", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488936619", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:39.391830Z"}, {"id": 1176, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488936619", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:30:19.150112Z"}, {"id": 1181, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T02:45:16.171950Z"}, {"id": 1222, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-14T00:50:31.882062Z"}, {"id": 1221, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-11T01:03:34.669314Z"}, {"id": 1314, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-29T00:49:02.657364Z"}, {"id": 1316, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1490751661", "category_id": 22, "timestamp_start": "1490751658"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-29T01:40:58.604592Z"}, {"id": 1317, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1490751663"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-29T01:41:03.689244Z"}, {"id": 1560, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:33:22.315075Z"}, {"id": 1561, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491183816", "category_id": 22, "timestamp_start": "1491183815"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:43:35.720998Z"}, {"id": 1563, "component": "topic", "context": {"topic_id": 32, "category_name": "F\u00cdSICA", "topic_slug": "now-invisble", "subject_id": 459, "topic_name": "Now Invisble", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1491183825", "category_id": 22, "timestamp_start": "1491183823", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:43:43.290815Z"}, {"id": 1562, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491183885", "category_id": 22, "timestamp_start": "1491183817"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:43:37.063065Z"}, {"id": 1566, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491183889", "category_id": 22, "timestamp_start": "1491183885"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:44:45.216039Z"}, {"id": 1674, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:55:42.781884Z"}, {"id": 1672, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:55:31.808049Z"}, {"id": 1677, "component": "chat", "context": {"subject_slug": "acustica", "user_email": "admin@amadeus.br", "subject_id": 459, "user_id": 1, "subject_name": "AC\u00daSTICA", "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:56:06.899904Z"}, {"id": 1673, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491353995", "subject_id": 459, "timestamp_start": "1491353740", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:55:40.507639Z"}, {"id": 1680, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:59:58.055991Z"}, {"id": 1682, "component": "chat", "context": {"subject_slug": "acustica", "user_email": "admin@amadeus.br", "subject_id": 459, "user_id": 1, "subject_name": "AC\u00daSTICA", "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:00:12.811175Z"}, {"id": 1679, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491354252", "subject_id": 459, "timestamp_start": "1491353995", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:59:55.874379Z"}, {"id": 1693, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_start": "1491354252", "subject_id": 459, "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:04:12.888402Z"}, {"id": 1694, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:04:14.945824Z"}, {"id": 1696, "component": "chat", "context": {"subject_slug": "acustica", "user_email": "admin@amadeus.br", "subject_id": 459, "user_id": 1, "subject_name": "AC\u00daSTICA", "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:04:25.213499Z"}, {"id": 1706, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:26:38.737881Z"}, {"id": 1708, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:30:21.138639Z"}, {"id": 1714, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:31:01.523956Z"}, {"id": 1717, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:31:14.839898Z"}, {"id": 1718, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:31:32.243590Z"}, {"id": 1724, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:31:44.849951Z"}, {"id": 1726, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:33:11.529728Z"}, {"id": 1734, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:35:43.014849Z"}, {"id": 1735, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:35:55.926115Z"}, {"id": 1739, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:37:35.890388Z"}, {"id": 1743, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:38:33.250084Z"}, {"id": 1746, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:38:49.913400Z"}, {"id": 1754, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:39:25.747552Z"}, {"id": 1759, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:39:58.020397Z"}, {"id": 1761, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:40:12.797425Z"}, {"id": 1764, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:40:49.430312Z"}, {"id": 1794, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:07:03.400068Z"}, {"id": 1784, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:42:20.280954Z"}, {"id": 1785, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:42:30.548117Z"}, {"id": 1796, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:10:35.496279Z"}, {"id": 1788, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:43:23.405407Z"}, {"id": 1789, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:43:30.782736Z"}, {"id": 1790, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:03:32.318245Z"}, {"id": 1791, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:03:32.413256Z"}, {"id": 1792, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:06:49.315711Z"}, {"id": 1797, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:10:45.791602Z"}, {"id": 1815, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T00:00:25.725477Z"}, {"id": 1899, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:57:15.554937Z"}, {"id": 1840, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491510614", "category_id": 22, "timestamp_start": "1491510612"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T20:30:12.828480Z"}, {"id": 1839, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T20:30:08.661590Z"}, {"id": 1841, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1491510614"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T20:30:14.063029Z"}, {"id": 1897, "component": "chat", "context": {"timestamp_end": "1491526695", "timestamp_start": "1491526589"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:56:29.945407Z"}, {"id": 1942, "component": "chat", "context": {"timestamp_end": "1491527509", "timestamp_start": "1491527509"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:49.253164Z"}, {"id": 1900, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:57:23.165700Z"}, {"id": 1901, "component": "chat", "context": {"timestamp_end": "1491526739", "timestamp_start": "1491526695"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:58:15.786995Z"}, {"id": 1871, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T20:51:47.162180Z"}, {"id": 1891, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T21:15:48.378540Z"}, {"id": 1894, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T21:36:15.212908Z"}, {"id": 1896, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:56:11.860093Z"}, {"id": 1898, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:57:01.897417Z"}, {"id": 1902, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:58:18.465654Z"}, {"id": 1904, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:59:02.711508Z"}, {"id": 1915, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:00:30.323138Z"}, {"id": 1918, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:01:04.526598Z"}, {"id": 1903, "component": "chat", "context": {"timestamp_end": "1491526982", "timestamp_start": "1491526739"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:58:59.831863Z"}, {"id": 1929, "component": "chat", "context": {"timestamp_end": "1491526982", "timestamp_start": "1491526982"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:02.615804Z"}, {"id": 1930, "component": "chat", "context": {"timestamp_end": "1491526982", "timestamp_start": "1491526982"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:02.706737Z"}, {"id": 1932, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:05.385823Z"}, {"id": 1933, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:12.641895Z"}, {"id": 1941, "component": "chat", "context": {"timestamp_start": "1491527509"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:49.098422Z"}, {"id": 1931, "component": "chat", "context": {"timestamp_end": "1491527509", "timestamp_start": "1491526982"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:02.927070Z"}, {"id": 1940, "component": "chat", "context": {"timestamp_end": "1491527509", "timestamp_start": "1491527508"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:48.975144Z"}, {"id": 1944, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:52.348335Z"}, {"id": 1946, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:12:07.910661Z"}, {"id": 1967, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:39.219183Z"}, {"id": 1968, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:50.239122Z"}, {"id": 1953, "component": "chat", "context": {"timestamp_start": "1491527631"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:51.731589Z"}, {"id": 1952, "component": "chat", "context": {"timestamp_end": "1491527631", "timestamp_start": "1491527631"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:51.609850Z"}, {"id": 1955, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:54.065399Z"}, {"id": 1956, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:59.483762Z"}, {"id": 1957, "component": "chat", "context": {"timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.407929Z"}, {"id": 1958, "component": "chat", "context": {"timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.495772Z"}, {"id": 1954, "component": "chat", "context": {"timestamp_end": "1491527670", "timestamp_start": "1491527631"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:51.866635Z"}, {"id": 1959, "component": "chat", "context": {"timestamp_end": "1491527670", "timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.606353Z"}, {"id": 1960, "component": "chat", "context": {"timestamp_end": "1491527670", "timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.760560Z"}, {"id": 1961, "component": "chat", "context": {"timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.893797Z"}, {"id": 1971, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:36:10.846757Z"}, {"id": 2009, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:17:44.650595Z"}, {"id": 2010, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491603471", "subject_id": 459, "timestamp_start": "1491603469", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:17:49.021610Z"}, {"id": 2011, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_start": "1491603471", "search_by": "", "subject_id": 459, "subject_slug": "acustica"}, "action": "view", "resource": "subject_participants", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:17:51.587148Z"}, {"id": 2012, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador"}, "action": "view", "resource": "profile", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:17:53.520769Z"}, {"id": 2046, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:37:58.684059Z"}, {"id": 2148, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942929", "subject_id": 459, "timestamp_start": "1491942810", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:30.508338Z"}, {"id": 2141, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:29:50.158140Z"}, {"id": 2143, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:30:10.326303Z"}, {"id": 2144, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:30:29.252907Z"}, {"id": 2142, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942633", "subject_id": 459, "timestamp_start": "1491942597", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:29:57.251442Z"}, {"id": 2159, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944873", "subject_id": 459, "timestamp_start": "1491944688", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:04:48.914286Z"}, {"id": 2145, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942677", "subject_id": 459, "timestamp_start": "1491942633", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:30:33.297605Z"}, {"id": 2156, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:35:48.098332Z"}, {"id": 2146, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942691", "subject_id": 459, "timestamp_start": "1491942677", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:31:17.014560Z"}, {"id": 2155, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942953", "subject_id": 459, "timestamp_start": "1491942933", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:35:33.136966Z"}, {"id": 2147, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942810", "subject_id": 459, "timestamp_start": "1491942691", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:31:31.706590Z"}, {"id": 2158, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944688", "subject_id": 459, "timestamp_start": "1491944687", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:04:47.759404Z"}, {"id": 2149, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.077376Z"}, {"id": 2150, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.088045Z"}, {"id": 2151, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.151688Z"}, {"id": 2152, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.233088Z"}, {"id": 2153, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.310043Z"}, {"id": 2154, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.332206Z"}, {"id": 2157, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944684", "subject_id": 459, "timestamp_start": "1491942953", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:35:53.050266Z"}, {"id": 2160, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:07:52.577789Z"}, {"id": 2161, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944882", "subject_id": 459, "timestamp_start": "1491944881", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:08:01.246381Z"}, {"id": 2162, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944961", "subject_id": 459, "timestamp_start": "1491944882", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:08:02.640389Z"}, {"id": 2163, "component": "pendencies", "context": {"timestamp_start": "1491944966", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491944968"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:09:26.304121Z"}, {"id": 2164, "component": "pendencies", "context": {"timestamp_start": "1491944968", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1491944974", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:09:28.662583Z"}, {"id": 2165, "component": "pendencies", "context": {"timestamp_start": "1491944974", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11/04/2017", "timestamp_end": "1491945024", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:09:34.927707Z"}, {"id": 2176, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:41:42.290483Z"}, {"id": 2166, "component": "pendencies", "context": {"timestamp_start": "1491945024", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11/04/2017", "timestamp_end": "1491945544", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:10:24.503694Z"}, {"id": 2167, "component": "pendencies", "context": {"timestamp_start": "1491945544", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11-04-2017", "timestamp_end": "1491945556", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:04.772824Z"}, {"id": 2168, "component": "pendencies", "context": {"timestamp_start": "1491945557", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11-31-2017", "timestamp_end": "1491945571", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:17.029781Z"}, {"id": 2169, "component": "pendencies", "context": {"timestamp_start": "1491945571", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11/31/2017", "timestamp_end": "1491945577", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:31.833808Z"}, {"id": 2170, "component": "pendencies", "context": {"timestamp_start": "1491945578", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "hey", "timestamp_end": "1491945580", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:38.099706Z"}, {"id": 2171, "component": "pendencies", "context": {"timestamp_start": "1491945580", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1491945611", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:40.889903Z"}, {"id": 2172, "component": "pendencies", "context": {"timestamp_start": "1491945611", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "13/04/2017", "timestamp_end": "1491945804", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:20:11.893170Z"}, {"id": 2173, "component": "pendencies", "context": {"timestamp_start": "1491945804", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491945813"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:23:24.762807Z"}, {"id": 2174, "component": "pendencies", "context": {"timestamp_start": "1491945813", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1491945829", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:23:33.432888Z"}, {"id": 2175, "component": "pendencies", "context": {"subject_id": 459, "timestamp_start": "1491945830", "subject_slug": "acustica", "view_page": 1, "subject_name": "AC\u00daSTICA"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:23:50.005128Z"}, {"id": 2179, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:01:55.058108Z"}, {"id": 2184, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:10:12.294248Z"}, {"id": 2185, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491948957", "subject_id": 459, "timestamp_start": "1491948954", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:15:54.043169Z"}, {"id": 2186, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491948962", "category_id": 22, "timestamp_start": "1491948957"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:15:57.853109Z"}, {"id": 2187, "component": "pendencies", "context": {"timestamp_start": "1491948962", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491948983"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:16:02.106115Z"}, {"id": 2188, "component": "pendencies", "context": {"timestamp_start": "1491948984", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491948991"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:16:24.139829Z"}, {"id": 2189, "component": "pendencies", "context": {"timestamp_start": "1491948991", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1491948994", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:16:31.732021Z"}, {"id": 2190, "component": "pendencies", "context": {"timestamp_start": "1491948994", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491948996"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:16:34.736917Z"}, {"id": 2191, "component": "pendencies", "context": {"timestamp_start": "1491949038", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491949173"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:17:18.291869Z"}, {"id": 2192, "component": "pendencies", "context": {"subject_id": 459, "timestamp_start": "1491949173", "subject_slug": "acustica", "view_page": 1, "subject_name": "AC\u00daSTICA"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:19:33.749609Z"}, {"id": 2193, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:39:40.053706Z"}, {"id": 2199, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:21:12.724246Z"}, {"id": 2200, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492125909", "subject_id": 459, "timestamp_start": "1492125906", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:25:06.780756Z"}, {"id": 2201, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126007", "subject_id": 459, "timestamp_start": "1492125909", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:25:09.273239Z"}, {"id": 2212, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126358", "subject_id": 459, "timestamp_start": "1492126357", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:32:37.557078Z"}, {"id": 2202, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126011", "subject_id": 459, "timestamp_start": "1492126010", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:26:50.137306Z"}, {"id": 2223, "component": "pendencies", "context": {"timestamp_start": "1492126904", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492126909", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:44.272424Z"}, {"id": 2203, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126103", "subject_id": 459, "timestamp_start": "1492126011", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:26:51.234380Z"}, {"id": 2213, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126732", "subject_id": 459, "timestamp_start": "1492126358", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:32:38.624614Z"}, {"id": 2204, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126106", "subject_id": 459, "timestamp_start": "1492126105", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:28:25.440805Z"}, {"id": 2205, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126227", "subject_id": 459, "timestamp_start": "1492126106", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:28:26.670663Z"}, {"id": 2219, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126894", "subject_id": 459, "timestamp_start": "1492126799", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:39:59.389663Z"}, {"id": 2206, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126231", "subject_id": 459, "timestamp_start": "1492126230", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:30:30.572946Z"}, {"id": 2207, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126241", "subject_id": 459, "timestamp_start": "1492126231", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:30:31.791530Z"}, {"id": 2214, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126736", "subject_id": 459, "timestamp_start": "1492126735", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:38:55.254223Z"}, {"id": 2208, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126245", "subject_id": 459, "timestamp_start": "1492126244", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:30:44.238059Z"}, {"id": 2209, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126259", "subject_id": 459, "timestamp_start": "1492126245", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:30:45.283407Z"}, {"id": 2215, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126769", "subject_id": 459, "timestamp_start": "1492126736", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:38:56.550061Z"}, {"id": 2210, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126264", "subject_id": 459, "timestamp_start": "1492126263", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:31:03.689993Z"}, {"id": 2211, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126355", "subject_id": 459, "timestamp_start": "1492126264", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:31:04.890991Z"}, {"id": 2220, "component": "pendencies", "context": {"timestamp_start": "1492126897", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1492126898"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:37.180574Z"}, {"id": 2216, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126773", "subject_id": 459, "timestamp_start": "1492126772", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:39:31.963616Z"}, {"id": 2221, "component": "pendencies", "context": {"timestamp_start": "1492126898", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492126900", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:38.582164Z"}, {"id": 2217, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126795", "subject_id": 459, "timestamp_start": "1492126773", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:39:33.010223Z"}, {"id": 2218, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126799", "subject_id": 459, "timestamp_start": "1492126798", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:39:57.983037Z"}, {"id": 2222, "component": "pendencies", "context": {"timestamp_start": "1492126900", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492126904", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:40.800195Z"}, {"id": 2224, "component": "pendencies", "context": {"timestamp_start": "1492126909", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492126944", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:49.645436Z"}, {"id": 2225, "component": "pendencies", "context": {"timestamp_start": "1492126944", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1492127266"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:42:24.357067Z"}, {"id": 2232, "component": "pendencies", "context": {"timestamp_start": "1492127266", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127373", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:47:46.851877Z"}, {"id": 2233, "component": "pendencies", "context": {"timestamp_start": "1492127373", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127416", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:49:33.635556Z"}, {"id": 2240, "component": "pendencies", "context": {"timestamp_start": "1492127731", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127733", "history_page": "3"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:31.133416Z"}, {"id": 2235, "component": "pendencies", "context": {"timestamp_start": "1492127541", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:52:21.431470Z"}, {"id": 2234, "component": "pendencies", "context": {"timestamp_start": "1492127416", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127555", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:50:16.367796Z"}, {"id": 2236, "component": "pendencies", "context": {"timestamp_start": "1492127555", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127593", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:52:35.212062Z"}, {"id": 2237, "component": "pendencies", "context": {"timestamp_start": "1492127593", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127649", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:53:13.432324Z"}, {"id": 2238, "component": "pendencies", "context": {"timestamp_start": "1492127649", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127728", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:54:09.524902Z"}, {"id": 2239, "component": "pendencies", "context": {"timestamp_start": "1492127728", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127731", "history_page": "2"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:28.355818Z"}, {"id": 2241, "component": "pendencies", "context": {"timestamp_start": "1492127733", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127735", "history_page": "4"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:33.684922Z"}, {"id": 2242, "component": "pendencies", "context": {"timestamp_start": "1492127735", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127737", "history_page": "5"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:35.445654Z"}, {"id": 2243, "component": "pendencies", "context": {"timestamp_start": "1492127737", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127739", "history_page": "6"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:37.251554Z"}, {"id": 2244, "component": "pendencies", "context": {"timestamp_start": "1492127739", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127742", "history_page": "7"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:39.998168Z"}, {"id": 2245, "component": "pendencies", "context": {"timestamp_start": "1492127742", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127743", "history_page": "8"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:42.133961Z"}, {"id": 2246, "component": "pendencies", "context": {"timestamp_start": "1492127743", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127745", "history_page": "9"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:43.943443Z"}, {"id": 2247, "component": "pendencies", "context": {"timestamp_start": "1492127745", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127756", "history_page": "10"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:45.897845Z"}, {"id": 2248, "component": "pendencies", "context": {"timestamp_start": "1492127757", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1492127771"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:57.022979Z"}, {"id": 2249, "component": "resources", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "webpage_slug": "revenge", "subject_slug": "acustica", "topic_id": 30, "timestamp_start": "1492127771", "topic_slug": "repositorio", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "timestamp_end": "1492127776", "webpage_id": 1, "category_id": 22, "webpage_name": "Revenge"}, "action": "view", "resource": "webpage", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:11.291806Z"}, {"id": 2250, "component": "mural", "context": {"timestamp_start": "1492127776", "resource_name": "Revenge", "subject_id": 459, "resource_id": 1, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "revenge", "timestamp_end": "1492127779"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:16.753307Z"}, {"id": 2251, "component": "resources", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "webpage_slug": "revenge", "subject_slug": "acustica", "topic_id": 30, "timestamp_start": "1492127779", "topic_slug": "repositorio", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "timestamp_end": "1492127780", "webpage_id": 1, "category_id": 22, "webpage_name": "Revenge"}, "action": "view", "resource": "webpage", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:19.499351Z"}, {"id": 2252, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1492127783", "category_id": 22, "timestamp_start": "1492127780"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:20.859941Z"}, {"id": 2253, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492127788", "subject_id": 459, "timestamp_start": "1492127785", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:25.169011Z"}, {"id": 2255, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-14T00:21:41.686250Z"}, {"id": 2259, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-15T00:51:14.061387Z"}, {"id": 2254, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492217474", "subject_id": 459, "timestamp_start": "1492127788", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:28.959612Z"}, {"id": 2260, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492217494", "subject_id": 459, "timestamp_start": "1492217480", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-15T00:51:19.995842Z"}, {"id": 2586, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-26T01:36:33.745524Z"}, {"id": 2262, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-15T01:16:47.696572Z"}, {"id": 2261, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492995562", "subject_id": 459, "timestamp_start": "1492217494", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-15T00:51:34.056885Z"}, {"id": 2372, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T00:59:21.981258Z"}, {"id": 2373, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492995610", "subject_id": 459, "timestamp_start": "1492995567", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T00:59:27.281209Z"}, {"id": 2382, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032945", "subject_id": 459, "timestamp_start": "1493032865", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:21:05.272760Z"}, {"id": 2375, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T01:20:18.161716Z"}, {"id": 2377, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:12:26.191980Z"}, {"id": 2374, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032346", "subject_id": 459, "timestamp_start": "1492995613", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T01:00:13.607041Z"}, {"id": 2380, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032682", "subject_id": 459, "timestamp_start": "1493032591", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:16:31.039008Z"}, {"id": 2378, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032468", "subject_id": 459, "timestamp_start": "1493032349", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:12:29.644103Z"}, {"id": 2379, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032588", "subject_id": 459, "timestamp_start": "1493032471", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:14:31.716757Z"}, {"id": 2381, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032862", "subject_id": 459, "timestamp_start": "1493032685", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:18:05.403084Z"}, {"id": 2385, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032969", "subject_id": 459, "timestamp_start": "1493032948", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:22:28.461096Z"}, {"id": 2383, "component": "pendencies", "context": {}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:21:16.252767Z"}, {"id": 2384, "component": "pendencies", "context": {"notification_id": 3237, "notification": "Visualizar System"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:21:19.653812Z"}, {"id": 2387, "component": "pendencies", "context": {"notification_id": 3237, "notification": "Visualizar System"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:22:56.726714Z"}, {"id": 2386, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033066", "subject_id": 459, "timestamp_start": "1493032972", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:22:52.192138Z"}, {"id": 2388, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033080", "subject_id": 459, "timestamp_start": "1493033069", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:24:29.447632Z"}, {"id": 2389, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033136", "subject_id": 459, "timestamp_start": "1493033082", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:24:42.549281Z"}, {"id": 2401, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033725", "subject_id": 459, "timestamp_start": "1493033723", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:35:23.153863Z"}, {"id": 2391, "component": "pendencies", "context": {"notification_id": 3237, "notification": "Visualizar System"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:25:49.616646Z"}, {"id": 2390, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033184", "subject_id": 459, "timestamp_start": "1493033138", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:25:38.898596Z"}, {"id": 2402, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T12:10:29.965789Z"}, {"id": 2392, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033678", "subject_id": 459, "timestamp_start": "1493033187", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:26:27.067783Z"}, {"id": 2393, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033683", "subject_id": 459, "timestamp_start": "1493033680", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:40.778746Z"}, {"id": 2394, "component": "resources", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "webpage_slug": "angels-calling", "subject_slug": "acustica", "topic_id": 30, "timestamp_start": "1493033683", "topic_slug": "repositorio", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "timestamp_end": "1493033692", "webpage_id": 68, "category_id": 22, "webpage_name": "Angels calling"}, "action": "view", "resource": "webpage", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:43.787750Z"}, {"id": 2395, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033692", "subject_id": 459, "timestamp_start": "1493033688", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:48.345307Z"}, {"id": 2396, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1493033705", "category_id": 22, "timestamp_start": "1493033692"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:52.339304Z"}, {"id": 2397, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033705", "subject_id": 459, "timestamp_start": "1493033700", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:59.986089Z"}, {"id": 2398, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1493033713", "category_id": 22, "timestamp_start": "1493033705"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:35:05.066338Z"}, {"id": 2399, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033713", "subject_id": 459, "timestamp_start": "1493033711", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:35:11.051070Z"}, {"id": 2400, "component": "category", "context": {"timestamp_start": "1493033716", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1493033725"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:35:16.652183Z"}, {"id": 2557, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:08:11.603340Z"}, {"id": 2558, "component": "mural", "context": {"timestamp_end": "1495573702", "timestamp_start": "1495573699"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:08:19.229099Z"}, {"id": 2560, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22}, "action": "create_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:08:39.168190Z"}, {"id": 2559, "component": "mural", "context": {"timestamp_start": "1495573709", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1495574216"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:08:29.012379Z"}, {"id": 2562, "component": "mural", "context": {"category_slug": "artes", "category_name": "ARTES", "category_id": 6}, "action": "create_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:17:11.351727Z"}, {"id": 2561, "component": "mural", "context": {"timestamp_start": "1495574219", "category_slug": "artes", "category_name": "ARTES", "category_id": 6, "timestamp_end": "1495574237"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:16:59.492679Z"}, {"id": 2564, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22}, "action": "create_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:17:30.479031Z"}, {"id": 2565, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "128", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:30:13.435109Z"}, {"id": 2563, "component": "mural", "context": {"timestamp_start": "1495574237", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1495575021"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:17:17.902158Z"}, {"id": 2567, "component": "mural", "context": {"category_slug": "ecologia", "category_name": "ECONOMIA", "post_id": "62", "category_id": 12}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:30:30.236424Z"}, {"id": 2566, "component": "mural", "context": {"timestamp_start": "1495575021", "category_slug": "ecologia", "category_name": "ECONOMIA", "category_id": 12, "timestamp_end": "1495575095"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:30:21.372430Z"}, {"id": 2577, "component": "mural", "context": {"resource_name": "Revenge", "post_id": "124", "subject_id": 459, "resource_id": 1, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "revenge"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:37:43.750379Z"}, {"id": 2576, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1495575478", "subject_id": 459, "timestamp_start": "1495575454", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:37:34.193592Z"}, {"id": 2575, "component": "mural", "context": {"subject_name": "CRIA\u00c7\u00c3O DE ANIMAIS", "subject_id": 790, "subject_slug": "criacao-de-animais"}, "action": "create_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:37:23.764808Z"}, {"id": 2574, "component": "mural", "context": {"subject_name": "CRIA\u00c7\u00c3O DE ANIMAIS", "timestamp_end": "1495575453", "subject_id": 790, "timestamp_start": "1495575434", "subject_slug": "criacao-de-animais"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:37:14.769228Z"}, {"id": 2587, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1495762614", "subject_id": 459, "timestamp_start": "1495762601", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-26T01:36:41.713465Z"}, {"id": 2588, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-26T01:36:54.476891Z"}, {"id": 2636, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-26T02:27:25.484603Z"}], "password": "pbkdf2_sha256$30000$5gbyp9Al3C2n$rroJzhQWFLetSzLJto5kyVC4z2hycFSWhH8uq3lhazI=", "last_login": "2017-05-26T01:36:33.649932Z", "is_superuser": false, "email": "e180@amadeus.br", "username": "e", "last_name": "180", "social_name": "Estudante 180", "description": "<p>Estudante da Universidade Federal do Vale do S\u00e3o Francisco - <b>UNIVASF</b>.</p>", "image": "/uploads/users/hqdefault.jpg", "date_created": "2017-01-01T03:00:00Z", "last_update": "2017-02-06T18:58:16.633761Z", "show_email": 1, "is_staff": false, "is_active": true, "groups": [], "user_permissions": []}], "_my_subclass": "filelink", "name": "Personal", "slug": "personal", "brief_description": "<p>Pray All I can do</p><p>Taskani</p>", "show_window": false, "all_students": false, "visible": false, "order": 6, "create_date": "2017-01-25T02:21:38.618190Z", "last_update": "2017-01-25T02:24:26.061727Z"}], [], [], [{"id": 71, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 123, "name": "wastelands"}, {"id": 124, "name": "disapear"}], "item_goal": [{"id": 6, "description": "Wastelands", "ref_value": 50, "order": 1}, {"id": 7, "description": "Arms with no weapons", "ref_value": 55, "order": 2}], "pendencies_resource": [{"id": 34, "action": "submit", "begin_date": "2017-03-07T20:10:00Z", "end_date": "2017-03-08T20:10:00Z", "limit_date": "2017-03-10T19:10:00Z"}], "groups": [], "students": [], "_my_subclass": "goals", "name": "Future", "slug": "future", "brief_description": "", "show_window": false, "all_students": true, "visible": true, "order": 6, "create_date": "2017-03-06T20:11:11.156470Z", "last_update": "2017-03-08T01:29:03.155215Z", "presentation": "<p>Stands away</p>", "limit_submission_date": "2017-03-11T20:10:00Z"}]] | |
2 | 1 | \ No newline at end of file |
2 | +[[{"id": 244, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 132, "name": "for"}], "pendencies_resource": [], "indicators": "bulletin/indicators/modelo_indicadores_relevantes_1.xls", "file_content": "bulletin/goals/future_a2WWa1X.xls", "_my_subclass": "bulletin", "name": "Left to lose", "slug": "left-to-lose", "brief_description": "<p>New</p>", "show_window": true, "all_students": true, "visible": true, "order": 7, "create_date": "2017-08-05T15:06:49.032110Z", "last_update": "2017-09-02T18:25:26.429883Z", "content": "<p>Lost </p>"}], [{"id": 6, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 48, "name": "anything"}, {"id": 49, "name": "lsoe"}], "pendencies_resource": [], "_my_subclass": "webpage", "name": "Doug", "slug": "doug", "brief_description": "<p>Today</p>", "show_window": true, "all_students": false, "visible": false, "order": 1, "create_date": "2017-01-23T17:36:14.900287Z", "last_update": "2017-01-24T17:33:39.433016Z", "content": "Freaky man"}, {"id": 20, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 69, "name": "noine"}, {"id": 70, "name": "nine"}], "pendencies_resource": [], "_my_subclass": "webpage", "name": "Myself", "slug": "myself", "brief_description": "<p>Is up to me</p>", "show_window": false, "all_students": true, "visible": false, "order": 2, "create_date": "2017-01-23T22:59:42.592301Z", "last_update": "2017-01-24T17:34:20.147284Z", "content": "<title>Sold my soul</title><h5>I brought this all <em>upon myself<br>Dont stop me now!!</em></h5>"}, {"id": 42, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 95, "name": "history"}], "pendencies_resource": [], "_my_subclass": "webpage", "name": "History goes", "slug": "history-goes", "brief_description": "<p>How</p>", "show_window": false, "all_students": false, "visible": false, "order": 4, "create_date": "2017-01-24T21:57:13.600718Z", "last_update": "2017-01-24T21:57:13.812438Z", "content": "<p>ON</p>"}, {"id": 246, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 133, "name": "peace"}], "pendencies_resource": [], "_my_subclass": "webpage", "name": "Mama", "slug": "mama", "brief_description": "", "show_window": true, "all_students": false, "visible": true, "order": 8, "create_date": "2017-08-28T23:29:41.911603Z", "last_update": "2017-08-28T23:29:42.174255Z", "content": "<p>find out where you've been</p>"}], [{"id": 41, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 93, "name": "last"}, {"id": 94, "name": "mistake"}], "pendencies_resource": [{"id": 19, "action": "view", "begin_date": "2017-01-26T22:54:00Z", "end_date": "2017-02-10T22:54:00Z", "limit_date": null}], "file_content": "files/formulariobolsista.doc.docx", "_my_subclass": "filelink", "name": "Secret", "slug": "secret", "brief_description": "<p>Do we create a modern myth?</p>", "show_window": true, "all_students": true, "visible": false, "order": 3, "create_date": "2017-01-24T21:55:44.193797Z", "last_update": "2017-01-24T21:55:44.330406Z"}, {"id": 46, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 100, "name": "just"}, {"id": 101, "name": "game"}], "pendencies_resource": [], "file_content": "files/jutificativa_voto.pdf", "_my_subclass": "filelink", "name": "Personal", "slug": "personal", "brief_description": "<p>Pray All I can do</p><p>Taskani</p>", "show_window": false, "all_students": false, "visible": false, "order": 6, "create_date": "2017-01-25T02:21:38.618190Z", "last_update": "2017-01-25T02:24:26.061727Z"}, {"id": 247, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 130, "name": ""}], "pendencies_resource": [], "file_content": "files/formulariobolsista.docx", "_my_subclass": "filelink", "name": "Starships", "slug": "starships", "brief_description": "", "show_window": false, "all_students": false, "visible": true, "order": 9, "create_date": "2017-09-01T03:15:21.199226Z", "last_update": "2017-09-01T03:15:22.217754Z"}], [{"id": 71, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 123, "name": "wastelands"}, {"id": 124, "name": "disapear"}], "item_goal": [{"id": 6, "description": "Wastelands", "ref_value": 50, "order": 1}, {"id": 7, "description": "Arms with no weapons", "ref_value": 55, "order": 2}], "pendencies_resource": [{"id": 34, "action": "submit", "begin_date": "2017-03-07T20:10:00Z", "end_date": "2017-03-08T20:10:00Z", "limit_date": "2017-03-10T19:10:00Z"}], "_my_subclass": "goals", "name": "Future", "slug": "future", "brief_description": "", "show_window": false, "all_students": true, "visible": true, "order": 6, "create_date": "2017-03-06T20:11:11.156470Z", "last_update": "2017-08-04T14:30:58.202411Z", "presentation": "<p>Stands away</p>", "limit_submission_date": "2017-08-04T00:10:00Z"}]] | |
3 | 3 | \ No newline at end of file | ... | ... |
bulletin/forms.py
... | ... | @@ -39,6 +39,8 @@ class BulletinForm(forms.ModelForm): |
39 | 39 | widgets = { |
40 | 40 | 'content': forms.Textarea, |
41 | 41 | 'brief_description': forms.Textarea, |
42 | + 'file_content': ResubmitFileWidget(attrs={'accept':'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel,application/vnd.oasis.opendocument.spreadsheet,text/csv'}), | |
43 | + 'indicators': ResubmitFileWidget(attrs={'accept':'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel,application/vnd.oasis.opendocument.spreadsheet,text/csv'}), | |
42 | 44 | } |
43 | 45 | |
44 | 46 | def clean_name(self): | ... | ... |
bulletin/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | @@ -30,23 +30,25 @@ msgstr "Nome do boletim" |
30 | 30 | msgid "Bulletin content" |
31 | 31 | msgstr "Apresentação do boletim" |
32 | 32 | |
33 | -#: bulletin/forms.py:56 | |
33 | +#: bulletin/forms.py:58 | |
34 | 34 | msgid "This subject already has a bulletin with this name" |
35 | 35 | msgstr "Este assunto já possui um boletim com este nome" |
36 | 36 | |
37 | -#: bulletin/forms.py:69 bulletin/forms.py:86 | |
37 | +#: bulletin/forms.py:71 bulletin/forms.py:88 | |
38 | +#: bulletin/templates/bulletin/_form.html:98 | |
39 | +#: bulletin/templates/bulletin/_form.html:151 | |
38 | 40 | msgid "The file is too large. It should have less than 1MB." |
39 | 41 | msgstr "O arquivo é muito grande. Ele deve ter menos que 1MB." |
40 | 42 | |
41 | -#: bulletin/forms.py:74 bulletin/forms.py:91 bulletin/forms.py:137 | |
43 | +#: bulletin/forms.py:76 bulletin/forms.py:93 bulletin/forms.py:139 | |
42 | 44 | msgid "This field is required." |
43 | 45 | msgstr "Este campo é obrigatório." |
44 | 46 | |
45 | -#: bulletin/forms.py:129 | |
47 | +#: bulletin/forms.py:131 | |
46 | 48 | msgid "Message" |
47 | 49 | msgstr "Mensagem" |
48 | 50 | |
49 | -#: bulletin/forms.py:149 | |
51 | +#: bulletin/forms.py:151 | |
50 | 52 | msgid "The image is too large. It should have less than 5MB." |
51 | 53 | msgstr "A imagem é muito grande. Ela deve ter menos que 5MB." |
52 | 54 | |
... | ... | @@ -70,7 +72,7 @@ msgstr "Metas" |
70 | 72 | msgid "Relevant Indicators" |
71 | 73 | msgstr "Indicadores Relevantes" |
72 | 74 | |
73 | -#: bulletin/models.py:25 bulletin/views.py:883 | |
75 | +#: bulletin/models.py:25 bulletin/views.py:934 | |
74 | 76 | msgid "Bulletin" |
75 | 77 | msgstr "Boletim" |
76 | 78 | |
... | ... | @@ -87,7 +89,7 @@ msgid "Click to download a xls file with the data of the goals" |
87 | 89 | msgstr "Clique para baixar um arquivo xls com os dados das metas" |
88 | 90 | |
89 | 91 | #: bulletin/templates/bulletin/_form.html:55 |
90 | -#: bulletin/templates/bulletin/_form.html:96 | |
92 | +#: bulletin/templates/bulletin/_form.html:109 | |
91 | 93 | msgid "Choose your file..." |
92 | 94 | msgstr "Escolha seu arquivo..." |
93 | 95 | |
... | ... | @@ -96,35 +98,40 @@ msgid "Click or drop the .xls file with the goals data" |
96 | 98 | msgstr "Selecione ou solte o arquivo .xls com os dados das metas" |
97 | 99 | |
98 | 100 | #: bulletin/templates/bulletin/_form.html:71 |
99 | -#: bulletin/templates/bulletin/_form.html:112 | |
101 | +#: bulletin/templates/bulletin/_form.html:125 | |
100 | 102 | msgid "The file could not exceed 1MB." |
101 | 103 | msgstr "O arquivo não pode exceder 1MB." |
102 | 104 | |
103 | -#: bulletin/templates/bulletin/_form.html:110 | |
105 | +#: bulletin/templates/bulletin/_form.html:99 | |
106 | +#: bulletin/templates/bulletin/_form.html:152 | |
107 | +msgid "File not supported." | |
108 | +msgstr "" | |
109 | + | |
110 | +#: bulletin/templates/bulletin/_form.html:123 | |
104 | 111 | msgid "Click or drop the .xls file with the indicators data" |
105 | 112 | msgstr "Selecione ou solte o arquivo .xls com a informação dos indicadores" |
106 | 113 | |
107 | -#: bulletin/templates/bulletin/_form.html:132 | |
114 | +#: bulletin/templates/bulletin/_form.html:156 | |
108 | 115 | msgid "Common resources settings" |
109 | 116 | msgstr "Configurações comuns dos recursos" |
110 | 117 | |
111 | -#: bulletin/templates/bulletin/_form.html:182 | |
118 | +#: bulletin/templates/bulletin/_form.html:206 | |
112 | 119 | msgid "Pendencies Notifications" |
113 | 120 | msgstr "Notificação de pendências" |
114 | 121 | |
115 | -#: bulletin/templates/bulletin/_form.html:198 | |
122 | +#: bulletin/templates/bulletin/_form.html:222 | |
116 | 123 | msgid "Action not performed by the user" |
117 | 124 | msgstr "Ação não realizada pelo usuário" |
118 | 125 | |
119 | -#: bulletin/templates/bulletin/_form.html:224 | |
126 | +#: bulletin/templates/bulletin/_form.html:248 | |
120 | 127 | msgid "Wished period" |
121 | 128 | msgstr "Período desejado" |
122 | 129 | |
123 | -#: bulletin/templates/bulletin/_form.html:335 | |
130 | +#: bulletin/templates/bulletin/_form.html:359 | |
124 | 131 | msgid "Save" |
125 | 132 | msgstr "Salvar" |
126 | 133 | |
127 | -#: bulletin/templates/bulletin/create.html:20 bulletin/views.py:454 | |
134 | +#: bulletin/templates/bulletin/create.html:20 bulletin/views.py:503 | |
128 | 135 | msgid "Create Bulletin" |
129 | 136 | msgstr "Criar boletim" |
130 | 137 | |
... | ... | @@ -189,14 +196,14 @@ msgid "The picture could not exceed 5MB." |
189 | 196 | msgstr "A imagem não pode exceder 5MB." |
190 | 197 | |
191 | 198 | #: bulletin/templates/bulletin/send_message.html:62 |
192 | -#: bulletin/templates/bulletin/view.html:223 | |
193 | -#: bulletin/templates/bulletin/window_view.html:234 | |
199 | +#: bulletin/templates/bulletin/view.html:235 | |
200 | +#: bulletin/templates/bulletin/window_view.html:257 | |
194 | 201 | msgid "Close" |
195 | 202 | msgstr "Fechar" |
196 | 203 | |
197 | 204 | #: bulletin/templates/bulletin/send_message.html:63 |
198 | -#: bulletin/templates/bulletin/view.html:224 | |
199 | -#: bulletin/templates/bulletin/window_view.html:235 | |
205 | +#: bulletin/templates/bulletin/view.html:236 | |
206 | +#: bulletin/templates/bulletin/window_view.html:258 | |
200 | 207 | msgid "Send" |
201 | 208 | msgstr "Enviar" |
202 | 209 | |
... | ... | @@ -204,50 +211,55 @@ msgstr "Enviar" |
204 | 211 | msgid "Edit: " |
205 | 212 | msgstr "Editar: " |
206 | 213 | |
207 | -#: bulletin/templates/bulletin/view.html:203 | |
208 | -#: bulletin/templates/bulletin/window_view.html:214 | |
214 | +#: bulletin/templates/bulletin/view.html:215 | |
215 | +#: bulletin/templates/bulletin/window_view.html:237 | |
209 | 216 | msgid "There are obstructions to your activities?" |
210 | 217 | msgstr "Existem impedimentos para as suas atividades?" |
211 | 218 | |
212 | -#: bulletin/templates/bulletin/view.html:204 | |
213 | -#: bulletin/templates/bulletin/window_view.html:215 | |
219 | +#: bulletin/templates/bulletin/view.html:216 | |
220 | +#: bulletin/templates/bulletin/window_view.html:238 | |
214 | 221 | msgid "Click here" |
215 | 222 | msgstr "Clique aqui" |
216 | 223 | |
217 | -#: bulletin/templates/bulletin/view.html:204 | |
218 | -#: bulletin/templates/bulletin/window_view.html:215 | |
224 | +#: bulletin/templates/bulletin/view.html:216 | |
225 | +#: bulletin/templates/bulletin/window_view.html:238 | |
219 | 226 | msgid "to communicate the difficulties that may decrease your performance." |
220 | 227 | msgstr "para informar as dificuldades que podem prejudicar seu desempenho." |
221 | 228 | |
222 | -#: bulletin/templates/bulletin/view.html:219 | |
223 | -#: bulletin/templates/bulletin/window_view.html:230 | |
229 | +#: bulletin/templates/bulletin/view.html:231 | |
230 | +#: bulletin/templates/bulletin/window_view.html:253 | |
224 | 231 | msgid "Type here the dificulties that may harm your performance" |
225 | 232 | msgstr "Escreva aqui as dificuldades que podem diminuir sua performance" |
226 | 233 | |
227 | -#: bulletin/utils.py:50 bulletin/views.py:950 | |
234 | +#: bulletin/utils.py:47 bulletin/views.py:1021 | |
228 | 235 | #, python-format |
229 | 236 | msgid "Last message in %s" |
230 | 237 | msgstr "Última mensagem em %s" |
231 | 238 | |
232 | -#: bulletin/views.py:84 bulletin/views.py:227 | |
239 | +#: bulletin/views.py:87 | |
233 | 240 | #, python-format |
234 | -msgid "#Dificulty(ies) found in %s" | |
241 | +msgid "#Difficulty(ies) found in %s" | |
235 | 242 | msgstr "#Dificuldade(s) encontrada(s) em %s" |
236 | 243 | |
237 | -#: bulletin/views.py:88 bulletin/views.py:231 | |
244 | +#: bulletin/views.py:113 bulletin/views.py:280 | |
238 | 245 | msgid "Difficulties sent to the subject professor(s)" |
239 | 246 | msgstr "Dificuldades enviadas para o(s) professor(es) do assunto" |
240 | 247 | |
241 | -#: bulletin/views.py:91 bulletin/views.py:234 | |
248 | +#: bulletin/views.py:117 bulletin/views.py:283 | |
242 | 249 | msgid "You should inform some difficulty" |
243 | 250 | msgstr "Você deve informar alguma dificuldade" |
244 | 251 | |
245 | -#: bulletin/views.py:351 | |
252 | +#: bulletin/views.py:254 | |
253 | +#, python-format | |
254 | +msgid "#Dificulty(ies) found in %s" | |
255 | +msgstr "#Dificuldade(s) encontrada(s) em %s" | |
256 | + | |
257 | +#: bulletin/views.py:400 | |
246 | 258 | #, python-format |
247 | 259 | msgid "The topic %s has no goals, so you can't create a Bulletin." |
248 | 260 | msgstr "O tópico %s não possui metas, então você não pode criar um Boletim." |
249 | 261 | |
250 | -#: bulletin/views.py:358 | |
262 | +#: bulletin/views.py:407 | |
251 | 263 | #, python-format |
252 | 264 | msgid "" |
253 | 265 | "The deadline to submit the goals of the topic %s has not yet closed, so you " |
... | ... | @@ -256,17 +268,17 @@ msgstr "" |
256 | 268 | "O prazo para submeter as metas do tópico %s ainda não foi fechado, então " |
257 | 269 | "você não pode criar um Boletim." |
258 | 270 | |
259 | -#: bulletin/views.py:363 | |
271 | +#: bulletin/views.py:412 | |
260 | 272 | #, python-format |
261 | 273 | msgid "The topic %s already has a Bulletin, so you can't create another." |
262 | 274 | msgstr "O tópico %s já possui um Boletim, então você não pode criar outro." |
263 | 275 | |
264 | -#: bulletin/views.py:381 bulletin/views.py:394 bulletin/views.py:663 | |
265 | -#: bulletin/views.py:665 bulletin/views.py:681 bulletin/views.py:683 | |
276 | +#: bulletin/views.py:430 bulletin/views.py:443 bulletin/views.py:713 | |
277 | +#: bulletin/views.py:715 bulletin/views.py:731 bulletin/views.py:733 | |
266 | 278 | msgid "Visualize" |
267 | 279 | msgstr "Visualizar" |
268 | 280 | |
269 | -#: bulletin/views.py:474 | |
281 | +#: bulletin/views.py:524 | |
270 | 282 | #, python-format |
271 | 283 | msgid "" |
272 | 284 | "The Bulletin \"%s\" was added to the Topic \"%s\" of the virtual environment " |
... | ... | @@ -275,58 +287,58 @@ msgstr "" |
275 | 287 | "O Boletim \"%s\" foi adicionado ao Tópio \"%s\" do ambiente virtual \"%s\" " |
276 | 288 | "com sucesso!" |
277 | 289 | |
278 | -#: bulletin/views.py:727 | |
290 | +#: bulletin/views.py:777 | |
279 | 291 | msgid "Update Bulletin" |
280 | 292 | msgstr "Atualizar boletim" |
281 | 293 | |
282 | -#: bulletin/views.py:745 | |
294 | +#: bulletin/views.py:796 | |
283 | 295 | #, python-format |
284 | 296 | msgid "The Bulletin \"%s\" was updated successfully!" |
285 | 297 | msgstr "O Boletim \"%s\" foi atualizado com sucesso!" |
286 | 298 | |
287 | -#: bulletin/views.py:781 | |
299 | +#: bulletin/views.py:832 | |
288 | 300 | #, python-format |
289 | 301 | msgid "" |
290 | 302 | "The bulletin \"%s\" was removed successfully from virtual environment \"%s\"!" |
291 | 303 | msgstr "O boletim \"%s\" foi removido com sucesso do ambiente virtual \"%s\"! " |
292 | 304 | |
293 | -#: bulletin/views.py:840 | |
305 | +#: bulletin/views.py:891 | |
294 | 306 | msgid "Bulletin Reports" |
295 | 307 | msgstr "Relatórios do Boletim" |
296 | 308 | |
297 | -#: bulletin/views.py:859 | |
309 | +#: bulletin/views.py:910 | |
298 | 310 | msgid "Realized" |
299 | 311 | msgstr "Realizada" |
300 | 312 | |
301 | -#: bulletin/views.py:859 | |
313 | +#: bulletin/views.py:910 | |
302 | 314 | msgid "Unrealized" |
303 | 315 | msgstr "Não realizada" |
304 | 316 | |
305 | -#: bulletin/views.py:859 | |
317 | +#: bulletin/views.py:910 | |
306 | 318 | msgid "Historic" |
307 | 319 | msgstr "Histórico" |
308 | 320 | |
309 | -#: bulletin/views.py:874 bulletin/views.py:882 | |
321 | +#: bulletin/views.py:925 bulletin/views.py:933 | |
310 | 322 | msgid "View" |
311 | 323 | msgstr "Visualizar" |
312 | 324 | |
313 | -#: bulletin/views.py:888 | |
325 | +#: bulletin/views.py:939 | |
314 | 326 | msgid "Actions about resource" |
315 | 327 | msgstr "Ações sobre o recurso" |
316 | 328 | |
317 | -#: bulletin/views.py:889 | |
329 | +#: bulletin/views.py:940 | |
318 | 330 | msgid "Quantity" |
319 | 331 | msgstr "Quantidade" |
320 | 332 | |
321 | -#: bulletin/views.py:938 | |
333 | +#: bulletin/views.py:1009 | |
322 | 334 | msgid "[Photo]" |
323 | 335 | msgstr "[Foto]" |
324 | 336 | |
325 | -#: bulletin/views.py:959 | |
337 | +#: bulletin/views.py:1030 | |
326 | 338 | msgid "The message was successfull sent!" |
327 | 339 | msgstr "A mensagem foi enviada com sucesso!" |
328 | 340 | |
329 | -#: bulletin/views.py:961 | |
341 | +#: bulletin/views.py:1032 | |
330 | 342 | msgid "No user selected!" |
331 | 343 | msgstr "Nenhum usuário selecionado!" |
332 | 344 | ... | ... |
bulletin/models.py
... | ... | @@ -6,12 +6,12 @@ from django.core.urlresolvers import reverse_lazy |
6 | 6 | |
7 | 7 | from topics.models import Resource |
8 | 8 | |
9 | -def validate_file_extension(value): | |
10 | - valid_formats = [ | |
11 | - 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', | |
12 | - 'application/vnd.ms-excel','application/vnd.oasis.opendocument.spreadsheet','text/csv' | |
13 | - ] | |
9 | +valid_formats = [ | |
10 | + 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', | |
11 | + 'application/vnd.ms-excel','application/vnd.oasis.opendocument.spreadsheet','text/csv' | |
12 | +] | |
14 | 13 | |
14 | +def validate_file_extension(value): | |
15 | 15 | if hasattr(value.file, 'content_type'): |
16 | 16 | if not value.file.content_type in valid_formats: |
17 | 17 | raise ValidationError(_('Please select a valid file. The uploaded file must have one of the following extensions: .csv, .xlx, .xls and .xlsx')) | ... | ... |
... | ... | @@ -0,0 +1,369 @@ |
1 | +import os | |
2 | +import zipfile | |
3 | +import time | |
4 | +from django.conf import settings | |
5 | +from django.core.files import File | |
6 | +from rest_framework import serializers | |
7 | +from django.shortcuts import get_object_or_404 | |
8 | + | |
9 | +from subjects.serializers import TagSerializer | |
10 | +from topics.serializers import TopicSerializer | |
11 | +from pendencies.serializers import PendenciesSerializer | |
12 | +from students_group.serializers import StudentsGroupSerializer | |
13 | +from users.serializers import UserBackupSerializer | |
14 | + | |
15 | +from subjects.models import Tag, Subject | |
16 | +from topics.models import Topic, Resource | |
17 | +from pendencies.models import Pendencies | |
18 | +from students_group.models import StudentsGroup | |
19 | +from log.models import Log | |
20 | +from users.models import User | |
21 | + | |
22 | +from .models import Bulletin | |
23 | + | |
24 | +class SimpleBulletinSerializer(serializers.ModelSerializer): | |
25 | + topic = TopicSerializer('get_subject') | |
26 | + tags = TagSerializer(many = True) | |
27 | + pendencies_resource = PendenciesSerializer(many = True) | |
28 | + indicators = serializers.CharField(required = False, allow_blank = True, max_length = 255) | |
29 | + file_content = serializers.CharField(required = False, allow_blank = True, max_length = 255) | |
30 | + | |
31 | + def get_subject(self, obj): | |
32 | + subject = self.context.get("subject", None) | |
33 | + | |
34 | + return subject | |
35 | + | |
36 | + def validate(self, data): | |
37 | + files = self.context.get('files', None) | |
38 | + | |
39 | + if files: | |
40 | + if data["file_content"] in files.namelist(): | |
41 | + file_path = os.path.join(settings.MEDIA_ROOT, data["file_content"]) | |
42 | + | |
43 | + if os.path.isfile(file_path): | |
44 | + dst_path = os.path.join(settings.MEDIA_ROOT, "tmp") | |
45 | + | |
46 | + path = files.extract(data["file_content"], dst_path) | |
47 | + | |
48 | + new_name = "goal_" + str(time.time()) + os.path.splitext(data["file_content"])[1] | |
49 | + | |
50 | + new_path = os.path.join("bulletin", os.path.join("goals", new_name)) | |
51 | + | |
52 | + os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_path)) | |
53 | + | |
54 | + data["file_content"] = new_path | |
55 | + else: | |
56 | + path = files.extract(data["file_content"], settings.MEDIA_ROOT) | |
57 | + else: | |
58 | + data["file_content"] = None | |
59 | + | |
60 | + if data["indicators"] in files.namelist(): | |
61 | + file_path = os.path.join(settings.MEDIA_ROOT, data["indicators"]) | |
62 | + | |
63 | + if os.path.isfile(file_path): | |
64 | + dst_path = os.path.join(settings.MEDIA_ROOT, "tmp") | |
65 | + | |
66 | + path = files.extract(data["indicators"], dst_path) | |
67 | + | |
68 | + new_name = "ind_" + str(time.time()) + os.path.splitext(data["indicators"])[1] | |
69 | + | |
70 | + new_path = os.path.join("bulletin", os.path.join("indicators", new_name)) | |
71 | + | |
72 | + os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_path)) | |
73 | + | |
74 | + data["indicators"] = new_path | |
75 | + else: | |
76 | + path = files.extract(data["indicators"], settings.MEDIA_ROOT) | |
77 | + else: | |
78 | + data["indicators"] = None | |
79 | + else: | |
80 | + data["file_content"] = None | |
81 | + data["indicators"] = None | |
82 | + | |
83 | + return data | |
84 | + | |
85 | + class Meta: | |
86 | + model = Bulletin | |
87 | + extra_kwargs = { | |
88 | + "tags": { | |
89 | + "validators": [], | |
90 | + }, | |
91 | + } | |
92 | + exclude = ('students', 'groups',) | |
93 | + validators = [] | |
94 | + | |
95 | + def create(self, data): | |
96 | + topic = data['topic'] | |
97 | + | |
98 | + bulletin = None | |
99 | + | |
100 | + if not topic["id"] is None: | |
101 | + if "subject" in topic: | |
102 | + r_exits = Resource.objects.filter(topic__subject = topic["subject"], name__unaccent__iexact = data["name"]) | |
103 | + else: | |
104 | + r_exits = Resource.objects.filter(topic__subject__id = topic["subject_id"], name__unaccent__iexact = data["name"]) | |
105 | + | |
106 | + if not r_exits.exists(): | |
107 | + if topic['id'] == "": | |
108 | + topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"]) | |
109 | + | |
110 | + if topic_exist.exists(): | |
111 | + topic = topic_exist[0] | |
112 | + else: | |
113 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
114 | + | |
115 | + data["topic"] = topic | |
116 | + else: | |
117 | + data["topic"] = get_object_or_404(Topic, id = topic["id"]) | |
118 | + | |
119 | + bulletin_data = data | |
120 | + | |
121 | + pendencies = bulletin_data["pendencies_resource"] | |
122 | + del bulletin_data["pendencies_resource"] | |
123 | + | |
124 | + bulletin = Bulletin() | |
125 | + bulletin.name = bulletin_data["name"] | |
126 | + bulletin.brief_description = bulletin_data["brief_description"] | |
127 | + bulletin.show_window = bulletin_data["show_window"] | |
128 | + bulletin.all_students = bulletin_data["all_students"] | |
129 | + bulletin.visible = bulletin_data["visible"] | |
130 | + bulletin.order = bulletin_data["order"] | |
131 | + bulletin.topic = bulletin_data["topic"] | |
132 | + bulletin.content = bulletin_data["content"] | |
133 | + bulletin.file_content = bulletin_data["file_content"] | |
134 | + bulletin.indicators = bulletin_data["indicators"] | |
135 | + | |
136 | + bulletin.save() | |
137 | + | |
138 | + tags = data["tags"] | |
139 | + | |
140 | + for tag in tags: | |
141 | + if not tag["name"] == "": | |
142 | + if tag["id"] == "": | |
143 | + tag = Tag.objects.create(name = tag["name"]) | |
144 | + else: | |
145 | + tag = get_object_or_404(Tag, id = tag["id"]) | |
146 | + | |
147 | + bulletin.tags.add(tag) | |
148 | + | |
149 | + resource = get_object_or_404(Resource, id = bulletin.id) | |
150 | + | |
151 | + for pend in pendencies: | |
152 | + Pendencies.objects.create(resource = resource, **pend) | |
153 | + | |
154 | + return bulletin | |
155 | + | |
156 | + def update(self, instance, data): | |
157 | + return instance | |
158 | + | |
159 | +class CompleteBulletinSerializer(serializers.ModelSerializer): | |
160 | + topic = TopicSerializer('get_subject') | |
161 | + tags = TagSerializer(many = True) | |
162 | + pendencies_resource = PendenciesSerializer(many = True) | |
163 | + groups = StudentsGroupSerializer('get_files', many = True) | |
164 | + students = UserBackupSerializer('get_files', many = True) | |
165 | + indicators = serializers.CharField(required = False, allow_blank = True, max_length = 255) | |
166 | + file_content = serializers.CharField(required = False, allow_blank = True, max_length = 255) | |
167 | + | |
168 | + def get_subject(self, obj): | |
169 | + subject = self.context.get("subject", None) | |
170 | + | |
171 | + return subject | |
172 | + | |
173 | + def get_files(self, obj): | |
174 | + files = self.context.get("files", None) | |
175 | + | |
176 | + return files | |
177 | + | |
178 | + def validate(self, data): | |
179 | + files = self.context.get('files', None) | |
180 | + | |
181 | + if files: | |
182 | + if data["file_content"] in files.namelist(): | |
183 | + file_path = os.path.join(settings.MEDIA_ROOT, data["file_content"]) | |
184 | + | |
185 | + if os.path.isfile(file_path): | |
186 | + dst_path = os.path.join(settings.MEDIA_ROOT, "tmp") | |
187 | + | |
188 | + path = files.extract(data["file_content"], dst_path) | |
189 | + | |
190 | + new_name = "goal_" + str(time.time()) + os.path.splitext(data["file_content"])[1] | |
191 | + | |
192 | + new_path = os.path.join("bulletin", os.path.join("goals", new_name)) | |
193 | + | |
194 | + os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_path)) | |
195 | + | |
196 | + data["file_content"] = new_path | |
197 | + else: | |
198 | + path = files.extract(data["file_content"], settings.MEDIA_ROOT) | |
199 | + else: | |
200 | + data["file_content"] = None | |
201 | + | |
202 | + if data["indicators"] in files.namelist(): | |
203 | + file_path = os.path.join(settings.MEDIA_ROOT, data["indicators"]) | |
204 | + | |
205 | + if os.path.isfile(file_path): | |
206 | + dst_path = os.path.join(settings.MEDIA_ROOT, "tmp") | |
207 | + | |
208 | + path = files.extract(data["indicators"], dst_path) | |
209 | + | |
210 | + new_name = "ind_" + str(time.time()) + os.path.splitext(data["indicators"])[1] | |
211 | + | |
212 | + new_path = os.path.join("bulletin", os.path.join("indicators", new_name)) | |
213 | + | |
214 | + os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_path)) | |
215 | + | |
216 | + data["indicators"] = new_path | |
217 | + else: | |
218 | + path = files.extract(data["indicators"], settings.MEDIA_ROOT) | |
219 | + else: | |
220 | + data["indicators"] = None | |
221 | + else: | |
222 | + data["file_content"] = None | |
223 | + data["indicators"] = None | |
224 | + | |
225 | + return data | |
226 | + | |
227 | + class Meta: | |
228 | + model = Bulletin | |
229 | + extra_kwargs = { | |
230 | + "tags": { | |
231 | + "validators": [], | |
232 | + }, | |
233 | + } | |
234 | + fields = '__all__' | |
235 | + validators = [] | |
236 | + | |
237 | + def create(self, data): | |
238 | + topic = data['topic'] | |
239 | + | |
240 | + bulletin = None | |
241 | + | |
242 | + if not topic["id"] is None: | |
243 | + if "subject" in topic: | |
244 | + r_exits = Resource.objects.filter(topic__subject = topic["subject"], name__unaccent__iexact = data["name"]) | |
245 | + else: | |
246 | + r_exits = Resource.objects.filter(topic__subject__id = topic["subject_id"], name__unaccent__iexact = data["name"]) | |
247 | + | |
248 | + if not r_exits.exists(): | |
249 | + if topic['id'] == "": | |
250 | + topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"]) | |
251 | + | |
252 | + if topic_exist.exists(): | |
253 | + topic = topic_exist[0] | |
254 | + else: | |
255 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
256 | + | |
257 | + data["topic"] = topic | |
258 | + else: | |
259 | + data["topic"] = get_object_or_404(Topic, id = topic["id"]) | |
260 | + | |
261 | + bulletin_data = data | |
262 | + | |
263 | + pendencies = bulletin_data["pendencies_resource"] | |
264 | + del bulletin_data["pendencies_resource"] | |
265 | + | |
266 | + bulletin = Bulletin() | |
267 | + bulletin.name = bulletin_data["name"] | |
268 | + bulletin.brief_description = bulletin_data["brief_description"] | |
269 | + bulletin.show_window = bulletin_data["show_window"] | |
270 | + bulletin.all_students = bulletin_data["all_students"] | |
271 | + bulletin.visible = bulletin_data["visible"] | |
272 | + bulletin.order = bulletin_data["order"] | |
273 | + bulletin.topic = bulletin_data["topic"] | |
274 | + bulletin.content = bulletin_data["content"] | |
275 | + bulletin.file_content = bulletin_data["file_content"] | |
276 | + bulletin.indicators = bulletin_data["indicators"] | |
277 | + | |
278 | + bulletin.save() | |
279 | + | |
280 | + tags = data["tags"] | |
281 | + | |
282 | + for tag in tags: | |
283 | + if not tag["name"] == "": | |
284 | + if tag["id"] == "": | |
285 | + tag = Tag.objects.create(name = tag["name"]) | |
286 | + else: | |
287 | + tag = get_object_or_404(Tag, id = tag["id"]) | |
288 | + | |
289 | + bulletin.tags.add(tag) | |
290 | + | |
291 | + resource = get_object_or_404(Resource, id = bulletin.id) | |
292 | + | |
293 | + students = data["students"] | |
294 | + subject = get_object_or_404(Subject, slug = self.context.get("subject", None)) | |
295 | + | |
296 | + for student_data in students: | |
297 | + logs = student_data["get_items"] | |
298 | + | |
299 | + if student_data["id"] == "": | |
300 | + u_exist = User.objects.filter(email = student_data["email"]) | |
301 | + | |
302 | + if not u_exist.exists(): | |
303 | + student = u_exist[0] | |
304 | + | |
305 | + for log in logs: | |
306 | + log["user_id"] = student.id | |
307 | + | |
308 | + l_exists = Log.objects.filter(user_id = log["user_id"], user = log["user"], user_email = log["user_email"], action = log["action"], resource = log["resource"], component = log["component"], context = log["context"]) | |
309 | + | |
310 | + if not l_exists.exists(): | |
311 | + Log.objects.create(**log) | |
312 | + else: | |
313 | + student = User() | |
314 | + student.email = student_data["email"] | |
315 | + student.username = student_data["username"] | |
316 | + student.last_name = student_data["last_name"] | |
317 | + student.social_name = student_data["social_name"] | |
318 | + student.show_email = student_data["show_email"] | |
319 | + student.is_staff = student_data["is_staff"] | |
320 | + student.is_active = student_data["is_active"] | |
321 | + student.image = student_data["image"] | |
322 | + | |
323 | + student.save() | |
324 | + | |
325 | + for log in logs: | |
326 | + log["user_id"] = student.id | |
327 | + | |
328 | + Log.objects.create(**log) | |
329 | + else: | |
330 | + student = get_object_or_404(User, id = student_data["id"]) | |
331 | + | |
332 | + for log in logs: | |
333 | + l_exists = Log.objects.filter(user_id = log["user_id"], user = log["user"], user_email = log["user_email"], action = log["action"], resource = log["resource"], component = log["component"], context = log["context"]) | |
334 | + | |
335 | + if not l_exists.exists(): | |
336 | + Log.objects.create(**log) | |
337 | + | |
338 | + bulletin.students.add(student) | |
339 | + subject.students.add(student) | |
340 | + | |
341 | + groups = data["groups"] | |
342 | + | |
343 | + for group_data in groups: | |
344 | + g_exists = StudentsGroup.objects.filter(subject = subject, slug = group_data["slug"]) | |
345 | + | |
346 | + if g_exists.exists(): | |
347 | + group = g_exists[0] | |
348 | + else: | |
349 | + group = StudentsGroup() | |
350 | + group.name = group_data["name"] | |
351 | + group.description = group_data["description"] | |
352 | + group.subject = subject | |
353 | + | |
354 | + group.save() | |
355 | + | |
356 | + for participant in group_data["participants"]: | |
357 | + p_user = get_object_or_404(User, email = participant["email"]) | |
358 | + | |
359 | + group.participants.add(p_user) | |
360 | + | |
361 | + bulletin.groups.add(group) | |
362 | + | |
363 | + for pend in pendencies: | |
364 | + Pendencies.objects.create(resource = resource, **pend) | |
365 | + | |
366 | + return bulletin | |
367 | + | |
368 | + def update(self, instance, data): | |
369 | + return instance | |
0 | 370 | \ No newline at end of file | ... | ... |
No preview for this file type
No preview for this file type
bulletin/static/css/estilo.css
... | ... | @@ -2,7 +2,7 @@ body,html{ |
2 | 2 | margin: 0; |
3 | 3 | padding: 0; |
4 | 4 | font-family: "Roboto", sans-serif; |
5 | - font-size: 0.95em; | |
5 | + /*font-size: 0.95em;*/ | |
6 | 6 | } |
7 | 7 | |
8 | 8 | .axis path, |
... | ... | @@ -25,11 +25,24 @@ body,html{ |
25 | 25 | display: none; |
26 | 26 | min-width: 20px; |
27 | 27 | height: 105px; |
28 | - background: none repeat scroll 0 0 #000; | |
29 | - border: 2px solid #ccc; | |
30 | - border-radius:10px; | |
28 | + background: none repeat scroll 0 0 #525252; | |
29 | + border: 2px solid #f5f5f5; | |
30 | + border-radius:5px; | |
31 | 31 | padding: 10px; |
32 | 32 | text-align: center; |
33 | 33 | color: #fff; |
34 | - opacity: 0.8; | |
34 | + opacity: 0.95; | |
35 | + font-size: 14px; | |
36 | +} | |
37 | + | |
38 | +.grey-tooltip + .tooltip > .tooltip-inner { | |
39 | + background-color: #666666; | |
40 | + border: 2px solid #f5f5f5; | |
41 | + border-radius:5px; | |
42 | + opacity: 0.95; | |
43 | + color:#f9f9f9; | |
44 | + padding: 10px; | |
45 | + font-size: 14px; | |
46 | + margin-top: -9px; | |
47 | + min-width: 190px; | |
35 | 48 | } | ... | ... |
bulletin/templates/bulletin/_form.html
1 | 1 | {% load static i18n %} |
2 | 2 | {% load widget_tweaks %} |
3 | 3 | |
4 | -<form method="post" action="" enctype="multipart/form-data"> | |
4 | +<form id="bulletin" method="post" action="" enctype="multipart/form-data"> | |
5 | 5 | {% csrf_token %} |
6 | 6 | |
7 | 7 | {% render_field form.control_subject %} |
... | ... | @@ -48,8 +48,8 @@ |
48 | 48 | |
49 | 49 | <label for="{{ form.file_content.auto_id }}">{{ form.file_content.label }} <span>*</span></label> |
50 | 50 | <a href="{% url 'bulletin:download_file' file=goal_file %}"> {% trans "Click to download a xls file with the data of the goals" %}</a> |
51 | - <div class="form-group{% if form.has_error %} has-error {% endif %} is-fileinput"> | |
52 | - {% render_field form.file_content class='file-selector' %} | |
51 | + <div class="form-group{% if form.has_error %} has-error {% endif %} is-fileinput" data-file_id="{{ form.file_content.auto_id }}"> | |
52 | + {% render_field form.file_content class='file-selector' data-max_size="1" data-mimetypes=mimeTypes %} | |
53 | 53 | |
54 | 54 | <div class="input-group common-file-input"> |
55 | 55 | <input type="text" readonly="" class="form-control" placeholder="{% trans 'Choose your file...' %}"> |
... | ... | @@ -74,23 +74,36 @@ |
74 | 74 | |
75 | 75 | <span id="helpBlock" class="help-block">{{ form.file_content.help_text }}</span> |
76 | 76 | |
77 | - {% if form.file_content.errors %} | |
78 | - <div class="alert alert-danger alert-dismissible" role="alert"> | |
79 | - <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
80 | - <span aria-hidden="true">×</span> | |
81 | - </button> | |
82 | - <ul> | |
83 | - {% for error in form.file_content.errors %} | |
84 | - <li>{{ error }}</li> | |
85 | - {% endfor %} | |
86 | - </ul> | |
87 | - </div> | |
88 | - {% endif %} | |
77 | + | |
78 | + </div> | |
79 | + | |
80 | + {% if form.file_content.errors %} | |
81 | + <div class="alert alert-danger alert-dismissible" role="alert"> | |
82 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
83 | + <span aria-hidden="true">×</span> | |
84 | + </button> | |
85 | + <ul> | |
86 | + {% for error in form.file_content.errors %} | |
87 | + <li>{{ error }}</li> | |
88 | + {% endfor %} | |
89 | + </ul> | |
90 | + </div> | |
91 | + {% endif %} | |
92 | + | |
93 | + <div class="col-lg-12 col-md-12 col-sm-12 alert alert-danger alert-dismissible {{ form.file_content.auto_id }}-file-errors" style="display:none" role="alert"> | |
94 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
95 | + <span aria-hidden="true">×</span> | |
96 | + </button> | |
97 | + <ul> | |
98 | + <li class="size" style="display:none">{% trans "The file is too large. It should have less than 1MB." %}</li> | |
99 | + <li class="format" style="display:none">{% trans 'File not supported.' %}</li> | |
100 | + </ul> | |
89 | 101 | </div> |
102 | + <br clear="all" /> | |
90 | 103 | |
91 | - <div class="form-group{% if form.has_error %} has-error {% endif %} is-fileinput"> | |
104 | + <div class="form-group{% if form.has_error %} has-error {% endif %} is-fileinput" data-file_id="{{ form.indicators.auto_id }}"> | |
92 | 105 | <label for="{{ form.indicators.auto_id }}">{{ form.indicators.label }} <span>*</span></label> |
93 | - {% render_field form.indicators class='file-selector' %} | |
106 | + {% render_field form.indicators class='file-selector' data-max_size="1" data-mimetypes=mimeTypes %} | |
94 | 107 | |
95 | 108 | <div class="input-group common-file-input"> |
96 | 109 | <input type="text" readonly="" class="form-control" placeholder="{% trans 'Choose your file...' %}"> |
... | ... | @@ -115,18 +128,29 @@ |
115 | 128 | |
116 | 129 | <span id="helpBlock" class="help-block">{{ form.indicators.help_text }}</span> |
117 | 130 | |
118 | - {% if form.indicators.errors %} | |
119 | - <div class="alert alert-danger alert-dismissible" role="alert"> | |
120 | - <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
121 | - <span aria-hidden="true">×</span> | |
122 | - </button> | |
123 | - <ul> | |
124 | - {% for error in form.indicators.errors %} | |
125 | - <li>{{ error }}</li> | |
126 | - {% endfor %} | |
127 | - </ul> | |
128 | - </div> | |
129 | - {% endif %} | |
131 | + </div> | |
132 | + | |
133 | + {% if form.indicators.errors %} | |
134 | + <div class="alert alert-danger alert-dismissible" role="alert"> | |
135 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
136 | + <span aria-hidden="true">×</span> | |
137 | + </button> | |
138 | + <ul> | |
139 | + {% for error in form.indicators.errors %} | |
140 | + <li>{{ error }}</li> | |
141 | + {% endfor %} | |
142 | + </ul> | |
143 | + </div> | |
144 | + {% endif %} | |
145 | + | |
146 | + <div class="col-lg-12 col-md-12 col-sm-12 alert alert-danger alert-dismissible {{ form.indicators.auto_id }}-file-errors" style="display:none" role="alert"> | |
147 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
148 | + <span aria-hidden="true">×</span> | |
149 | + </button> | |
150 | + <ul> | |
151 | + <li class="size" style="display:none">{% trans "The file is too large. It should have less than 1MB." %}</li> | |
152 | + <li class="format" style="display:none">{% trans 'File not supported.' %}</li> | |
153 | + </ul> | |
130 | 154 | </div> |
131 | 155 | |
132 | 156 | <legend>{% trans 'Common resources settings' %}</legend> | ... | ... |
bulletin/templates/bulletin/view.html
... | ... | @@ -9,7 +9,7 @@ |
9 | 9 | {% endblock%} |
10 | 10 | |
11 | 11 | {% block style %} |
12 | -<link rel="stylesheet" href="{% static 'css/estilo.css' %}"> | |
12 | + <link rel="stylesheet" href="{% static 'css/estilo.css' %}"> | |
13 | 13 | {% endblock %} |
14 | 14 | |
15 | 15 | {% block breadcrumbs %} |
... | ... | @@ -104,32 +104,44 @@ |
104 | 104 | |
105 | 105 | |
106 | 106 | <!-- Cor amarela --> |
107 | - {% if meta.alcancada < meta.desejada and meta.alcancada > meta.estabelecida %} | |
108 | - <th style="text-align:center;background-color:#f8b800 ; text-shadow: 1px 1px 10px #000; color:#fff; font-weight: normal;">{{ meta.alcancada }}%</th> | |
107 | + {% if meta.alcancada < meta.desejada and meta.alcancada > meta.estabelecida or meta.alcancada < meta.desejada and meta.alcancada == meta.estabelecida %} | |
108 | + <th style="text-align:center;background-color:#f8b800 ; text-shadow: 1px 1px 2px #000; color:#fff; font-weight: normal;" | |
109 | + data-toggle="tooltip" data-html="true" data-placement="bottom" | |
110 | + title="<b>Meta atingida!</b><br><br>Atenção! O seu resultado foi inferior ao recomendado pelo professor." class="grey-tooltip"> | |
111 | + {{ meta.alcancada }}%</th> | |
109 | 112 | {% endif %} |
110 | 113 | |
111 | - {% if meta.alcancada > meta.desejada and meta.alcancada < meta.estabelecida %} | |
112 | - <th style="text-align:center;background-color:#f8b800 ; text-shadow: 1px 1px 10px #000; color:#fff; font-weight: normal;">{{ meta.alcancada }}%</th> | |
113 | - | |
114 | + {% if meta.alcancada > meta.desejada and meta.alcancada < meta.estabelecida or meta.alcancada == meta.desejada and meta.alcancada < meta.estabelecida %} | |
115 | + <th style="text-align:center;background-color:#f8b800 ; text-shadow: 1px 1px 2px #000; color:#fff; font-weight: normal;" | |
116 | + data-toggle="tooltip" data-html="true" data-placement="bottom" | |
117 | + title="<b>Meta atingida!</b><br><br>Atenção! O seu resultado foi inferior a sua meta inicial." class="grey-tooltip"> | |
118 | + {{ meta.alcancada }}%</th> | |
114 | 119 | {% endif %} |
120 | + | |
115 | 121 | <!-- Cor amarela --> |
116 | 122 | |
117 | 123 | <!-- Cor verde --> |
118 | - {% if meta.alcancada > meta.desejada and meta.alcancada > meta.estabelecida or meta.alcancada == 100 %} | |
119 | - <th style="text-align:center;background-color:#00d337; text-shadow: 1px 1px 10px #000; color:#fff; font-weight: normal;">{{ meta.alcancada }}%</th> | |
124 | + {% if meta.alcancada > meta.desejada and meta.alcancada > meta.estabelecida or meta.alcancada == meta.desejada and meta.alcancada > meta.estabelecida or meta.alcancada > meta.desejada and meta.alcancada == meta.estabelecida or meta.alcancada == 100 or meta.alcancada == meta.desejada and meta.alcancada == meta.estabelecida %} | |
125 | + <th style="text-align:center;background-color:#00d337; text-shadow: 1px 1px 2px #000; color:#fff; font-weight: normal;" | |
126 | + data-toggle="tooltip" data-html="true" data-placement="bottom" | |
127 | + title="<b>Meta atingida!</b>" class="grey-tooltip"> | |
128 | + {{ meta.alcancada }}%</th> | |
120 | 129 | {% endif %} |
130 | + | |
121 | 131 | <!-- Cor verde --> |
122 | 132 | |
123 | 133 | <!-- Cor vermelha --> |
124 | 134 | {% if meta.alcancada < meta.desejada and meta.alcancada < meta.estabelecida %} |
125 | - <th style="text-align:center;background-color:#ff0000; text-shadow: 1px 1px 10px #000; color:#fff; font-weight: normal;">{{ meta.alcancada }}%</th> | |
135 | + <th style="text-align:center;background-color:#ff0000; text-shadow: 1px 1px 2px #000; color:#fff; font-weight: normal;" | |
136 | + data-toggle="tooltip" data-html="true" data-placement="bottom" | |
137 | + title="<b>Meta não atingida!</b><br><br>Resultado inferior </br>a sua meta e ao recomendado pelo professor." class="grey-tooltip"> | |
138 | + {{ meta.alcancada }}%</th> | |
126 | 139 | |
127 | 140 | {% endif %} |
128 | 141 | <!-- Cor vermelha --> |
129 | 142 | |
130 | 143 | |
131 | 144 | </tr> |
132 | - | |
133 | 145 | {% endfor %} |
134 | 146 | |
135 | 147 | |
... | ... | @@ -236,6 +248,17 @@ |
236 | 248 | |
237 | 249 | |
238 | 250 | <script type="text/javascript"> |
251 | + $('#bulletin-difficulties-modal').on('shown.bs.modal', function (e) { | |
252 | + $.ajax({ | |
253 | + url: "{% url 'bulletin:difficulties_log' bulletin.slug %}", | |
254 | + dataType: 'json', | |
255 | + success: function (data) { | |
256 | + }, | |
257 | + error: function (data) { | |
258 | + console.log(data); | |
259 | + } | |
260 | + }); | |
261 | + }); | |
239 | 262 | // Variável obtidas a partir do número de metas atendidas |
240 | 263 | var percent = "{{ percent }}"; |
241 | 264 | ... | ... |
bulletin/templates/bulletin/window_view.html
... | ... | @@ -47,7 +47,7 @@ |
47 | 47 | <script type="text/javascript" src="{% static 'js/jscookie.js' %}"></script> |
48 | 48 | <script type="text/javascript" src="{% static 'js/jPages.js' %}"></script> |
49 | 49 | <script type="text/javascript" src="{% static 'js/d3.v3.min.js' %}"></script> |
50 | - <script type="text/javascript" src="{% static 'subjects/js/modal_subject.js' %}"></script> | |
50 | + <script type="text/javascript" src="{% static 'subjects/js/modal_subject.js' %}"></script> | |
51 | 51 | |
52 | 52 | <!-- Font awesome --> |
53 | 53 | <link rel="stylesheet" type="text/css" href="{% static 'font-awesome-4.6.3/css/font-awesome.min.css' %}"> |
... | ... | @@ -55,15 +55,26 @@ |
55 | 55 | <!-- Custom styles --> |
56 | 56 | <link rel="stylesheet" type="text/css" href="{% static 'css/base/amadeus_responsive.css' %}"> |
57 | 57 | <link rel="stylesheet" type="text/css" href="{% static 'css/base/amadeus.css' %}"> |
58 | + <link rel="stylesheet" href="{% static 'css/estilo.css' %}"> | |
58 | 59 | |
59 | 60 | {% with 'css/themes/'|add:theme.css_style|add:'.css' as theme_selected %} |
60 | 61 | <link rel="stylesheet" type="text/css" href="{% static theme_selected %}"> |
61 | 62 | {% endwith %} |
62 | 63 | |
63 | 64 | |
64 | - <link rel="stylesheet" href="{% static 'css/estilo.css' %}"> | |
65 | + | |
65 | 66 | </head> |
66 | 67 | <body style="background: #FFF"> |
68 | + {% if messages %} | |
69 | + {% for message in messages %} | |
70 | + <div class="alert alert-{{ message.tags }} alert-dismissible" role="alert"> | |
71 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
72 | + <span aria-hidden="true">×</span> | |
73 | + </button> | |
74 | + <p>{{ message }}</p> | |
75 | + </div> | |
76 | + {% endfor %} | |
77 | + {% endif %} | |
67 | 78 | |
68 | 79 | {% subject_permissions request.user bulletin.topic.subject as has_subject_permissions %} |
69 | 80 | <div class="container-fluid" style="padding-top: 20px;"> |
... | ... | @@ -115,28 +126,41 @@ |
115 | 126 | |
116 | 127 | |
117 | 128 | <!-- Cor amarela --> |
118 | - {% if meta.alcancada < meta.desejada and meta.alcancada > meta.estabelecida %} | |
119 | - <th style="text-align:center;background-color:#f8b800 ; text-shadow: 1px 1px 10px #000; color:#fff; font-weight: normal;">{{ meta.alcancada }}%</th> | |
120 | - {% endif %} | |
129 | + {% if meta.alcancada < meta.desejada and meta.alcancada > meta.estabelecida or meta.alcancada < meta.desejada and meta.alcancada == meta.estabelecida %} | |
130 | + <th style="text-align:center;background-color:#f8b800 ; text-shadow: 1px 1px 2px #000; color:#fff; font-weight: normal;" | |
131 | + data-toggle="tooltip" data-html="true" data-placement="bottom" | |
132 | + title="<b>Meta atingida!</b><br><br>Atenção! O seu resultado foi inferior ao recomendado pelo professor." class="grey-tooltip"> | |
133 | + {{ meta.alcancada }}%</th> | |
134 | + {% endif %} | |
121 | 135 | |
122 | - {% if meta.alcancada > meta.desejada and meta.alcancada < meta.estabelecida %} | |
123 | - <th style="text-align:center;background-color:#f8b800 ; text-shadow: 1px 1px 10px #000; color:#fff; font-weight: normal;">{{ meta.alcancada }}%</th> | |
136 | + {% if meta.alcancada > meta.desejada and meta.alcancada < meta.estabelecida or meta.alcancada == meta.desejada and meta.alcancada < meta.estabelecida %} | |
137 | + <th style="text-align:center;background-color:#f8b800 ; text-shadow: 1px 1px 2px #000; color:#fff; font-weight: normal;" | |
138 | + data-toggle="tooltip" data-html="true" data-placement="bottom" | |
139 | + title="<b>Meta atingida!</b><br><br>Atenção! O seu resultado foi inferior a sua meta inicial." class="grey-tooltip"> | |
140 | + {{ meta.alcancada }}%</th> | |
141 | + {% endif %} | |
124 | 142 | |
125 | - {% endif %} | |
126 | - <!-- Cor amarela --> | |
143 | + <!-- Cor amarela --> | |
127 | 144 | |
128 | 145 | <!-- Cor verde --> |
129 | - {% if meta.alcancada > meta.desejada and meta.alcancada > meta.estabelecida or meta.alcancada == 100 %} | |
130 | - <th style="text-align:center;background-color:#00d337; text-shadow: 1px 1px 10px #000; color:#fff; font-weight: normal;">{{ meta.alcancada }}%</th> | |
146 | + {% if meta.alcancada > meta.desejada and meta.alcancada > meta.estabelecida or meta.alcancada == meta.desejada and meta.alcancada > meta.estabelecida or meta.alcancada > meta.desejada and meta.alcancada == meta.estabelecida or meta.alcancada == 100 or meta.alcancada == meta.desejada and meta.alcancada == meta.estabelecida %} | |
147 | + <th style="text-align:center;background-color:#00d337; text-shadow: 1px 1px 2px #000; color:#fff; font-weight: normal;" | |
148 | + data-toggle="tooltip" data-html="true" data-placement="bottom" | |
149 | + title="<b>Meta atingida!</b>" class="grey-tooltip"> | |
150 | + {{ meta.alcancada }}%</th> | |
131 | 151 | {% endif %} |
152 | + | |
132 | 153 | <!-- Cor verde --> |
133 | 154 | |
134 | - <!-- Cor vermelha --> | |
135 | - {% if meta.alcancada < meta.desejada and meta.alcancada < meta.estabelecida %} | |
136 | - <th style="text-align:center;background-color:#ff0000; text-shadow: 1px 1px 10px #000; color:#fff; font-weight: normal;">{{ meta.alcancada }}%</th> | |
155 | + <!-- Cor vermelha --> | |
156 | + {% if meta.alcancada < meta.desejada and meta.alcancada < meta.estabelecida %} | |
157 | + <th style="text-align:center;background-color:#ff0000; text-shadow: 1px 1px 2px #000; color:#fff; font-weight: normal;" | |
158 | + data-toggle="tooltip" data-html="true" data-placement="bottom" | |
159 | + title="<b>Meta não atingida!</b><br><br>Resultado inferior </br>a sua meta e ao recomendado pelo professor." class="grey-tooltip"> | |
160 | + {{ meta.alcancada }}%</th> | |
137 | 161 | |
138 | - {% endif %} | |
139 | - <!-- Cor vermelha --> | |
162 | + {% endif %} | |
163 | + <!-- Cor vermelha --> | |
140 | 164 | |
141 | 165 | |
142 | 166 | </tr> |
... | ... | @@ -204,40 +228,40 @@ |
204 | 228 | </div> |
205 | 229 | |
206 | 230 | {% if not has_subject_permissions %} |
207 | - <div class="form-group" style="background-color:#fff; box-shadow: 1px 1px 25px #c0beaf; margin-top: 15px;"> | |
231 | + <div class="form-group" style="background-color:#fff; box-shadow: 1px 1px 25px #c0beaf; margin-top: 15px;"> | |
208 | 232 | <div class="row"> |
209 | - <div class="col-md-1" align="left" style="padding-left: 25px; padding-top: 10px;"> | |
210 | - <img src="{% static 'img/warning.png' %}" height="80" width="95"/> | |
211 | - </div> | |
212 | - <div class="col-md-11"> | |
213 | - <div class="row"> | |
233 | + <div class="col-md-1" align="left" style="padding-left: 25px; padding-top: 10px;"> | |
234 | + <img src="{% static 'img/warning.png' %}" height="80" width="95"/> | |
235 | + </div> | |
236 | + <div class="col-md-11"> | |
237 | + <div class="row"> | |
214 | 238 | <div align="left" style="padding-left: 25px; font-size:22px; color: #878787; padding-top: 15px;padding-bottom: 20px;">{% trans 'There are obstructions to your activities?' %}</div> |
215 | 239 | <div align="left" style="padding-left: 25px; padding-right:35px; font-size:16px;"><p><a data-toggle="modal" data-target="#bulletin-difficulties-modal" href=""><b>{% trans 'Click here' %}</b></a> {% trans 'to communicate the difficulties that may decrease your performance.' %}</p></div> |
240 | + </div> | |
216 | 241 | </div> |
217 | 242 | </div> |
218 | 243 | </div> |
219 | - </div> | |
220 | - </br> | |
221 | - <div class="modal fade" tabindex="-1" role="dialog" id="bulletin-difficulties-modal"> | |
222 | - <div class="modal-dialog" role="document"> | |
223 | - <div class="modal-content"> | |
244 | + </br> | |
245 | + <div class="modal fade" tabindex="-1" role="dialog" id="bulletin-difficulties-modal"> | |
246 | + <div class="modal-dialog" role="document"> | |
247 | + <div class="modal-content"> | |
224 | 248 | <div class="modal-header"> |
225 | - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> | |
249 | + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> | |
226 | 250 | </div> |
227 | 251 | <div class="modal-body"> |
228 | - <form id="bulletin-difficulties" action="" method="POST" enctype="multipart/form-data"> | |
229 | - {% csrf_token %} | |
230 | - <textarea class="form-control" id="dificulties" name="difficulties" placeholder="{% trans 'Type here the dificulties that may harm your performance' %}"></textarea> | |
231 | - </form> | |
252 | + <form id="bulletin-difficulties" action="" method="POST" enctype="multipart/form-data"> | |
253 | + {% csrf_token %} | |
254 | + <textarea class="form-control" id="dificulties" name="difficulties" placeholder="{% trans 'Type here the dificulties that may harm your performance' %}"></textarea> | |
255 | + </form> | |
232 | 256 | </div> |
233 | 257 | <div class="modal-footer"> |
234 | - <button type="button" class="btn btn-default btn-raised" data-dismiss="modal">{% trans "Close" %}</button> | |
235 | - <button type="submit" class="btn btn-success btn-raised erase-button" form="bulletin-difficulties">{% trans "Send" %}</button> | |
258 | + <button type="button" class="btn btn-default btn-raised" data-dismiss="modal">{% trans "Close" %}</button> | |
259 | + <button type="submit" class="btn btn-success btn-raised erase-button" form="bulletin-difficulties">{% trans "Send" %}</button> | |
236 | 260 | </div> |
261 | + </div> | |
237 | 262 | </div> |
238 | - </div> | |
239 | - </div> | |
240 | - {% endif %} | |
263 | + </div> | |
264 | + {% endif %} | |
241 | 265 | |
242 | 266 | {% include 'session_security/all.html' %} |
243 | 267 | <script type="text/javascript"> |
... | ... | @@ -245,6 +269,22 @@ |
245 | 269 | </script> |
246 | 270 | |
247 | 271 | <script type="text/javascript"> |
272 | + $('[data-toggle="tooltip"]').tooltip({ | |
273 | + trigger: 'hover' | |
274 | + }); | |
275 | + | |
276 | + $('#bulletin-difficulties-modal').on('shown.bs.modal', function (e) { | |
277 | + $.ajax({ | |
278 | + url: "{% url 'bulletin:difficulties_log' bulletin.slug %}", | |
279 | + dataType: 'json', | |
280 | + success: function (data) { | |
281 | + }, | |
282 | + error: function (data) { | |
283 | + console.log(data); | |
284 | + } | |
285 | + }); | |
286 | + }); | |
287 | + | |
248 | 288 | // Variável obtidas a partir do número de metas atendidas |
249 | 289 | var percent = "{{ percent }}"; |
250 | 290 | ... | ... |
bulletin/urls.py
... | ... | @@ -12,4 +12,5 @@ urlpatterns = [ |
12 | 12 | url(r'^chart/(?P<slug>[\w_-]+)/$', views.StatisticsView.as_view(), name = 'get_chart'), |
13 | 13 | url(r'^send-message/(?P<slug>[\w_-]+)/$', views.SendMessage.as_view(), name = 'send_message'), |
14 | 14 | url(r'^download_file/(?P<file>[\w_-]+)/$', views.download_excel, name = 'download_file'), |
15 | + url(r'^difficulties_log/(?P<slug>[\w_-]+)/$', views.bulletin_diff_view_log, name = 'difficulties_log') | |
15 | 16 | ] | ... | ... |
bulletin/utils.py
... | ... | @@ -11,14 +11,11 @@ from django.utils.translation import ugettext_lazy as _ |
11 | 11 | |
12 | 12 | from channels import Group |
13 | 13 | |
14 | +from api.utils import sendChatPushNotification | |
14 | 15 | |
15 | 16 | from chat.models import Conversation, TalkMessages, ChatVisualizations |
16 | 17 | from users.models import User |
17 | 18 | |
18 | - | |
19 | - | |
20 | - | |
21 | - | |
22 | 19 | def brodcast_dificulties(request, message, subject): |
23 | 20 | msg = TalkMessages() |
24 | 21 | msg.text = message |
... | ... | @@ -54,4 +51,6 @@ def brodcast_dificulties(request, message, subject): |
54 | 51 | |
55 | 52 | Group("user-%s" % p.id).send({'text': notification}) |
56 | 53 | |
54 | + sendChatPushNotification(p, msg) | |
55 | + | |
57 | 56 | ChatVisualizations.objects.create(viewed = False, message = msg, user = p) | ... | ... |
bulletin/views.py
... | ... | @@ -27,9 +27,11 @@ from django.utils import timezone |
27 | 27 | from pendencies.forms import PendenciesForm |
28 | 28 | |
29 | 29 | from .forms import BulletinForm |
30 | -from .models import Bulletin | |
30 | +from .models import Bulletin, valid_formats | |
31 | 31 | |
32 | 32 | from log.models import Log |
33 | +from log.decorators import log_decorator | |
34 | + | |
33 | 35 | from chat.models import Conversation, TalkMessages, ChatVisualizations |
34 | 36 | from users.models import User |
35 | 37 | from subjects.models import Subject |
... | ... | @@ -81,11 +83,35 @@ class NewWindowView(LoginRequiredMixin, LogMixin, generic.DetailView): |
81 | 83 | self.student = user |
82 | 84 | else: |
83 | 85 | if not difficulties is None and not difficulties == "": |
84 | - message = _("#Dificulty(ies) found in %s")%(str(bulletin)) + ":<p>" + difficulties + "</p>" | |
86 | + print(difficulties) | |
87 | + message = _("#Difficulty(ies) found in %s")%(str(bulletin)) + ":<p>" + difficulties + "</p>" | |
85 | 88 | |
86 | 89 | brodcast_dificulties(self.request, message, bulletin.topic.subject) |
87 | 90 | |
91 | + self.log_context = {} | |
92 | + self.log_context['category_id'] = bulletin.topic.subject.category.id | |
93 | + self.log_context['category_name'] = bulletin.topic.subject.category.name | |
94 | + self.log_context['category_slug'] = bulletin.topic.subject.category.slug | |
95 | + self.log_context['subject_id'] = bulletin.topic.subject.id | |
96 | + self.log_context['subject_name'] = bulletin.topic.subject.name | |
97 | + self.log_context['subject_slug'] = bulletin.topic.subject.slug | |
98 | + self.log_context['topic_id'] = bulletin.topic.id | |
99 | + self.log_context['topic_name'] = bulletin.topic.name | |
100 | + self.log_context['topic_slug'] = bulletin.topic.slug | |
101 | + self.log_context['bulletin_id'] = bulletin.id | |
102 | + self.log_context['bulletin_name'] = bulletin.name | |
103 | + self.log_context['bulletin_slug'] = bulletin.slug | |
104 | + | |
105 | + self.log_action = "send_difficulties" | |
106 | + | |
107 | + super(NewWindowView, self).createLog(self.request.user, self.log_component, self.log_action, | |
108 | + self.log_resource, self.log_context) | |
109 | + | |
110 | + self.log_action = "view" | |
111 | + self.log_context = {} | |
112 | + | |
88 | 113 | messages.success(self.request, message = _("Difficulties sent to the subject professor(s)")) |
114 | + | |
89 | 115 | return self.render_to_response(context = self.get_context_data()) |
90 | 116 | else: |
91 | 117 | messages.error(self.request, message = _("You should inform some difficulty")) |
... | ... | @@ -184,8 +210,9 @@ class NewWindowView(LoginRequiredMixin, LogMixin, generic.DetailView): |
184 | 210 | context['titulos'] = titulos |
185 | 211 | context['student'] = self.request.POST.get('selected_student', students.first().email) |
186 | 212 | context['students'] = students |
187 | - | |
213 | + | |
188 | 214 | return context |
215 | + | |
189 | 216 | class InsideView(LoginRequiredMixin, LogMixin, generic.DetailView): |
190 | 217 | log_component = 'resources' |
191 | 218 | log_action = 'view' |
... | ... | @@ -228,6 +255,28 @@ class InsideView(LoginRequiredMixin, LogMixin, generic.DetailView): |
228 | 255 | |
229 | 256 | brodcast_dificulties(self.request, message, bulletin.topic.subject) |
230 | 257 | |
258 | + self.log_context = {} | |
259 | + self.log_context['category_id'] = bulletin.topic.subject.category.id | |
260 | + self.log_context['category_name'] = bulletin.topic.subject.category.name | |
261 | + self.log_context['category_slug'] = bulletin.topic.subject.category.slug | |
262 | + self.log_context['subject_id'] = bulletin.topic.subject.id | |
263 | + self.log_context['subject_name'] = bulletin.topic.subject.name | |
264 | + self.log_context['subject_slug'] = bulletin.topic.subject.slug | |
265 | + self.log_context['topic_id'] = bulletin.topic.id | |
266 | + self.log_context['topic_name'] = bulletin.topic.name | |
267 | + self.log_context['topic_slug'] = bulletin.topic.slug | |
268 | + self.log_context['bulletin_id'] = bulletin.id | |
269 | + self.log_context['bulletin_name'] = bulletin.name | |
270 | + self.log_context['bulletin_slug'] = bulletin.slug | |
271 | + | |
272 | + self.log_action = "send_difficulties" | |
273 | + | |
274 | + super(InsideView, self).createLog(self.request.user, self.log_component, self.log_action, | |
275 | + self.log_resource, self.log_context) | |
276 | + | |
277 | + self.log_action = "view" | |
278 | + self.log_context = {} | |
279 | + | |
231 | 280 | messages.success(self.request, message = _("Difficulties sent to the subject professor(s)")) |
232 | 281 | return self.render_to_response(context = self.get_context_data()) |
233 | 282 | else: |
... | ... | @@ -466,6 +515,7 @@ class CreateView(LoginRequiredMixin, LogMixin, generic.edit.CreateView): |
466 | 515 | alunos = sorted(list(meta_geral.topic.subject.students.all()), key = lambda e: e.id) |
467 | 516 | create_excel_file(alunos, itens_da_meta,meta_geral) |
468 | 517 | context['goal_file'] = str(meta_geral.slug) |
518 | + context['mimeTypes'] = valid_formats | |
469 | 519 | |
470 | 520 | |
471 | 521 | return context |
... | ... | @@ -738,6 +788,7 @@ class UpdateView(LoginRequiredMixin, LogMixin, generic.UpdateView): |
738 | 788 | alunos = sorted(list(meta_geral.topic.subject.students.all()), key = lambda e: e.id) |
739 | 789 | create_excel_file(alunos, itens_da_meta,meta_geral) |
740 | 790 | context['goal_file'] = str(meta_geral.slug) |
791 | + context['mimeTypes'] = valid_formats | |
741 | 792 | |
742 | 793 | return context |
743 | 794 | |
... | ... | @@ -893,7 +944,27 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView): |
893 | 944 | context["history_table"] = history |
894 | 945 | return context |
895 | 946 | |
947 | +@log_decorator('resources', 'access_difficulties_modal', 'bulletin') | |
948 | +def bulletin_diff_view_log(request, slug): | |
949 | + bulletin = get_object_or_404(Bulletin, slug = slug) | |
896 | 950 | |
951 | + log_context = {} | |
952 | + log_context['category_id'] = bulletin.topic.subject.category.id | |
953 | + log_context['category_name'] = bulletin.topic.subject.category.name | |
954 | + log_context['category_slug'] = bulletin.topic.subject.category.slug | |
955 | + log_context['subject_id'] = bulletin.topic.subject.id | |
956 | + log_context['subject_name'] = bulletin.topic.subject.name | |
957 | + log_context['subject_slug'] = bulletin.topic.subject.slug | |
958 | + log_context['topic_id'] = bulletin.topic.id | |
959 | + log_context['topic_name'] = bulletin.topic.name | |
960 | + log_context['topic_slug'] = bulletin.topic.slug | |
961 | + log_context['bulletin_id'] = bulletin.id | |
962 | + log_context['bulletin_name'] = bulletin.name | |
963 | + log_context['bulletin_slug'] = bulletin.slug | |
964 | + | |
965 | + request.log_context = log_context | |
966 | + | |
967 | + return JsonResponse({'message': 'ok'}) | |
897 | 968 | |
898 | 969 | from django.http import HttpResponse #used to send HTTP 404 error to ajax |
899 | 970 | ... | ... |
categories/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
chat/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | @@ -250,11 +250,11 @@ msgstr "Inativo" |
250 | 250 | msgid "Offline" |
251 | 251 | msgstr "Offline" |
252 | 252 | |
253 | -#: chat/templatetags/chat_tags.py:63 chat/views.py:429 | |
253 | +#: chat/templatetags/chat_tags.py:63 chat/views.py:426 | |
254 | 254 | msgid "Unfavorite" |
255 | 255 | msgstr "Desfavoritar" |
256 | 256 | |
257 | -#: chat/templatetags/chat_tags.py:65 chat/views.py:433 | |
257 | +#: chat/templatetags/chat_tags.py:65 chat/views.py:430 | |
258 | 258 | msgid "Favorite" |
259 | 259 | msgstr "Favoritar" |
260 | 260 | ... | ... |
chat/models.py
... | ... | @@ -11,9 +11,9 @@ from datetime import timezone |
11 | 11 | from subjects.models import Subject |
12 | 12 | from users.models import User |
13 | 13 | |
14 | +valid_formats = ['image/jpeg','image/x-citrix-jpeg','image/png','image/x-citrix-png','image/x-png','image/gif'] | |
15 | + | |
14 | 16 | def validate_img_extension(value): |
15 | - valid_formats = ['image/jpeg','image/x-citrix-jpeg','image/png','image/x-citrix-png','image/x-png','image/gif'] | |
16 | - | |
17 | 17 | if hasattr(value.file, 'content_type'): |
18 | 18 | if not value.file.content_type in valid_formats: |
19 | 19 | raise ValidationError(_('Select a valid file. The file must posses one of this extensions: .jpg, .png, .gif')) | ... | ... |
chat/views.py
... | ... | @@ -24,12 +24,12 @@ from log.models import Log |
24 | 24 | from log.mixins import LogMixin |
25 | 25 | import time |
26 | 26 | |
27 | -from fcm_django.models import FCMDevice | |
28 | - | |
29 | 27 | from categories.models import Category |
30 | 28 | from subjects.models import Subject |
31 | 29 | from users.models import User |
32 | 30 | |
31 | +from api.utils import sendChatPushNotification | |
32 | + | |
33 | 33 | from .models import Conversation, TalkMessages, ChatVisualizations, ChatFavorites |
34 | 34 | from .forms import ChatMessageForm |
35 | 35 | |
... | ... | @@ -371,10 +371,7 @@ class SendMessage(LoginRequiredMixin, LogMixin, generic.edit.CreateView): |
371 | 371 | |
372 | 372 | Group("user-%s" % user.id).send({'text': notification}) |
373 | 373 | |
374 | - device = FCMDevice.objects.filter(user = user).first() | |
375 | - | |
376 | - if not device is None: | |
377 | - device.send_message(title = "Message", body = self.object.text) | |
374 | + sendChatPushNotification(user, self.object) | |
378 | 375 | |
379 | 376 | ChatVisualizations.objects.create(viewed = False, message = self.object, user = user) |
380 | 377 | ... | ... |
dashboards/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
file_link/forms.py
... | ... | @@ -2,14 +2,18 @@ |
2 | 2 | from django import forms |
3 | 3 | from django.utils.translation import ugettext_lazy as _ |
4 | 4 | from django.utils.html import strip_tags |
5 | +from resubmit.widgets import ResubmitFileWidget | |
5 | 6 | |
6 | 7 | from subjects.models import Tag |
8 | +from subjects.forms import ParticipantsMultipleChoiceField | |
7 | 9 | |
8 | 10 | from .models import FileLink |
9 | 11 | |
10 | 12 | class FileLinkForm(forms.ModelForm): |
11 | 13 | subject = None |
12 | 14 | MAX_UPLOAD_SIZE = 10*1024*1024 |
15 | + | |
16 | + students = ParticipantsMultipleChoiceField(queryset = None, required = False) | |
13 | 17 | |
14 | 18 | def __init__(self, *args, **kwargs): |
15 | 19 | super(FileLinkForm, self).__init__(*args, **kwargs) |
... | ... | @@ -35,6 +39,7 @@ class FileLinkForm(forms.ModelForm): |
35 | 39 | 'brief_description': forms.Textarea, |
36 | 40 | 'students': forms.SelectMultiple, |
37 | 41 | 'groups': forms.SelectMultiple, |
42 | + 'file_content': ResubmitFileWidget(attrs={'accept':'image/jpeg,image/x-citrix-jpeg,image/png,image/x-citrix-png,image/x-png,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.presentationml.slideshow,application/vnd.openxmlformats-officedocument.presentationml.presentation,application/vnd.ms-excel,text/html,application/msword,application/vnd.oasis.opendocument.presentation,application/vnd.oasis.opendocument.spreadsheet,application/vnd.oasis.opendocument.text,application/pdf,application/vnd.ms-powerpoint'}), | |
38 | 43 | } |
39 | 44 | |
40 | 45 | def clean_name(self): | ... | ... |
file_link/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | @@ -18,27 +18,27 @@ msgstr "" |
18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
20 | 20 | |
21 | -#: file_link/forms.py:26 | |
21 | +#: file_link/forms.py:30 | |
22 | 22 | msgid "Tags" |
23 | 23 | msgstr "Tags" |
24 | 24 | |
25 | -#: file_link/forms.py:32 | |
25 | +#: file_link/forms.py:36 | |
26 | 26 | msgid "File name" |
27 | 27 | msgstr "Nome do arquivo" |
28 | 28 | |
29 | -#: file_link/forms.py:52 | |
29 | +#: file_link/forms.py:57 | |
30 | 30 | msgid "This subject already has a file link with this name" |
31 | 31 | msgstr "Esse assunto já possui um Link para Arquivo com esse nome" |
32 | 32 | |
33 | -#: file_link/forms.py:64 | |
33 | +#: file_link/forms.py:69 file_link/templates/file_links/_form.html:75 | |
34 | 34 | msgid "The file is too large. It should have less than 10MB." |
35 | 35 | msgstr "Esse arquivo é muito grande. Ele deve conter menos de 10MB." |
36 | 36 | |
37 | -#: file_link/forms.py:69 | |
37 | +#: file_link/forms.py:74 | |
38 | 38 | msgid "This field is required." |
39 | 39 | msgstr "Esse campo é obrigatório." |
40 | 40 | |
41 | -#: file_link/models.py:23 | |
41 | +#: file_link/models.py:24 | |
42 | 42 | msgid "" |
43 | 43 | "Please select a valid file. The uploaded file must have one of the following " |
44 | 44 | "extensions: .doc, .docx, .html, .jpg, .odp, .ods, .odt, .pdf, .png, .ppt, ." |
... | ... | @@ -48,19 +48,19 @@ msgstr "" |
48 | 48 | "das seguintes extensões: .doc, .docx, .html, .jpg, .odp, .ods, .odt, .pdf, ." |
49 | 49 | "png, .ppt, .pptx, .xlx e .xlsx" |
50 | 50 | |
51 | -#: file_link/models.py:26 | |
51 | +#: file_link/models.py:27 | |
52 | 52 | msgid "File" |
53 | 53 | msgstr "Arquivo" |
54 | 54 | |
55 | -#: file_link/models.py:29 | |
55 | +#: file_link/models.py:30 | |
56 | 56 | msgid "File Link" |
57 | 57 | msgstr "Link para Arquivo" |
58 | 58 | |
59 | -#: file_link/models.py:30 | |
59 | +#: file_link/models.py:31 | |
60 | 60 | msgid "File Links" |
61 | 61 | msgstr "Links para Arquivo" |
62 | 62 | |
63 | -#: file_link/models.py:49 | |
63 | +#: file_link/models.py:50 | |
64 | 64 | msgid "Are you sure you want delete the file link" |
65 | 65 | msgstr "Você tem certeza que deseja remover o Link para Arquivo" |
66 | 66 | |
... | ... | @@ -76,31 +76,35 @@ msgstr "Clique ou solte o arquivo aqui" |
76 | 76 | msgid "The file could not exceed 10MB." |
77 | 77 | msgstr "O arquivo não pode exceder 10MB." |
78 | 78 | |
79 | -#: file_link/templates/file_links/_form.html:69 | |
79 | +#: file_link/templates/file_links/_form.html:76 | |
80 | +msgid "File not supported." | |
81 | +msgstr "Arquivo não suportado." | |
82 | + | |
83 | +#: file_link/templates/file_links/_form.html:80 | |
80 | 84 | msgid "Common resources settings" |
81 | 85 | msgstr "Configurações comuns à todos os recursos" |
82 | 86 | |
83 | -#: file_link/templates/file_links/_form.html:118 | |
87 | +#: file_link/templates/file_links/_form.html:129 | |
84 | 88 | msgid "Pendencies Notifications" |
85 | 89 | msgstr "Notificações de Pendências" |
86 | 90 | |
87 | -#: file_link/templates/file_links/_form.html:134 | |
91 | +#: file_link/templates/file_links/_form.html:145 | |
88 | 92 | msgid "Action not performed by the user" |
89 | 93 | msgstr "Ação não realizada pelo usuário" |
90 | 94 | |
91 | -#: file_link/templates/file_links/_form.html:160 | |
95 | +#: file_link/templates/file_links/_form.html:171 | |
92 | 96 | msgid "Wished period" |
93 | 97 | msgstr "Período desejado" |
94 | 98 | |
95 | -#: file_link/templates/file_links/_form.html:256 | |
99 | +#: file_link/templates/file_links/_form.html:267 | |
96 | 100 | msgid "Attribute students to file link" |
97 | 101 | msgstr "Atribuir estudantes ao Link para Arquivo" |
98 | 102 | |
99 | -#: file_link/templates/file_links/_form.html:276 | |
103 | +#: file_link/templates/file_links/_form.html:287 | |
100 | 104 | msgid "Attribute groups to file link" |
101 | 105 | msgstr "Atribuir grupos de estudo ao Link para Arquivo" |
102 | 106 | |
103 | -#: file_link/templates/file_links/_form.html:322 | |
107 | +#: file_link/templates/file_links/_form.html:333 | |
104 | 108 | msgid "Save" |
105 | 109 | msgstr "Salvar" |
106 | 110 | |
... | ... | @@ -180,12 +184,12 @@ msgstr "Enviar" |
180 | 184 | msgid "Edit: " |
181 | 185 | msgstr "Editar: " |
182 | 186 | |
183 | -#: file_link/views.py:121 file_link/views.py:134 file_link/views.py:244 | |
184 | -#: file_link/views.py:246 file_link/views.py:262 file_link/views.py:264 | |
187 | +#: file_link/views.py:121 file_link/views.py:134 file_link/views.py:245 | |
188 | +#: file_link/views.py:247 file_link/views.py:263 file_link/views.py:265 | |
185 | 189 | msgid "Visualize" |
186 | 190 | msgstr "Visualizar" |
187 | 191 | |
188 | -#: file_link/views.py:205 | |
192 | +#: file_link/views.py:206 | |
189 | 193 | #, python-format |
190 | 194 | msgid "" |
191 | 195 | "The File Link \"%s\" was added to the Topic \"%s\" of the virtual " |
... | ... | @@ -194,16 +198,16 @@ msgstr "" |
194 | 198 | "O Link para Arquivo \"%s\" foi adicionado ao tópico \"%s\" do ambiente " |
195 | 199 | "virtual \"%s\" com sucesso!" |
196 | 200 | |
197 | -#: file_link/views.py:308 | |
201 | +#: file_link/views.py:309 | |
198 | 202 | msgid "Update File Link" |
199 | 203 | msgstr "Atualizar Link para Arquivo" |
200 | 204 | |
201 | -#: file_link/views.py:319 | |
205 | +#: file_link/views.py:321 | |
202 | 206 | #, python-format |
203 | 207 | msgid "The File Link \"%s\" was updated successfully!" |
204 | 208 | msgstr "O Link para Arquivo \"%s\" foi atualizado com sucesso!" |
205 | 209 | |
206 | -#: file_link/views.py:346 | |
210 | +#: file_link/views.py:348 | |
207 | 211 | #, python-format |
208 | 212 | msgid "" |
209 | 213 | "The File Link \"%s\" was removed successfully from virtual environment \"%s" |
... | ... | @@ -212,57 +216,54 @@ msgstr "" |
212 | 216 | "O Link para Arquivo \"%s\" foi removido do ambiente virtual \"%s\" com " |
213 | 217 | "sucesso!" |
214 | 218 | |
215 | -#: file_link/views.py:405 | |
219 | +#: file_link/views.py:407 | |
216 | 220 | msgid "File Link Reports" |
217 | 221 | msgstr "Relatŕios de Link para Arquivo" |
218 | 222 | |
219 | -#: file_link/views.py:424 | |
223 | +#: file_link/views.py:426 | |
220 | 224 | msgid "Realized" |
221 | 225 | msgstr "Realizada" |
222 | 226 | |
223 | -#: file_link/views.py:424 | |
227 | +#: file_link/views.py:426 | |
224 | 228 | msgid "Unrealized" |
225 | 229 | msgstr "Não Realizada" |
226 | 230 | |
227 | -#: file_link/views.py:424 | |
231 | +#: file_link/views.py:426 | |
228 | 232 | msgid "Historic" |
229 | 233 | msgstr "Histórico" |
230 | 234 | |
231 | -#: file_link/views.py:439 file_link/views.py:447 | |
235 | +#: file_link/views.py:441 file_link/views.py:449 | |
232 | 236 | msgid "View" |
233 | 237 | msgstr "Visualizar" |
234 | 238 | |
235 | -#: file_link/views.py:448 | |
239 | +#: file_link/views.py:450 | |
236 | 240 | msgid "File link" |
237 | 241 | msgstr "Link para Arquivo" |
238 | 242 | |
239 | -#: file_link/views.py:453 | |
243 | +#: file_link/views.py:455 | |
240 | 244 | msgid "Actions about resource" |
241 | 245 | msgstr "Ações sobre o recurso" |
242 | 246 | |
243 | -#: file_link/views.py:454 | |
247 | +#: file_link/views.py:456 | |
244 | 248 | msgid "Quantity" |
245 | 249 | msgstr "Quantidade" |
246 | 250 | |
247 | -#: file_link/views.py:501 | |
251 | +#: file_link/views.py:503 | |
248 | 252 | msgid "[Photo]" |
249 | 253 | msgstr "[Imagem]" |
250 | 254 | |
251 | -#: file_link/views.py:513 | |
255 | +#: file_link/views.py:515 | |
252 | 256 | #, python-format |
253 | 257 | msgid "Last message in %s" |
254 | 258 | msgstr "Última mensagem em %s" |
255 | 259 | |
256 | -#: file_link/views.py:522 | |
260 | +#: file_link/views.py:524 | |
257 | 261 | msgid "The message was successfull sent!" |
258 | 262 | msgstr "A mensagem foi enviada com sucesso!" |
259 | 263 | |
260 | -#: file_link/views.py:524 | |
264 | +#: file_link/views.py:526 | |
261 | 265 | msgid "No user selected!" |
262 | 266 | msgstr "Nenhum usuário selecionado!" |
263 | 267 | |
264 | -#~ msgid "File not supported." | |
265 | -#~ msgstr "Arquivo não suportado." | |
266 | - | |
267 | 268 | #~ msgid "Delete" |
268 | 269 | #~ msgstr "Remover" | ... | ... |
file_link/serializers.py
... | ... | @@ -44,7 +44,7 @@ class SimpleFileLinkSerializer(serializers.ModelSerializer): |
44 | 44 | |
45 | 45 | path = files.extract(data["file_content"], dst_path) |
46 | 46 | |
47 | - new_name = "files/file_" + str(time.time()) + os.path.splitext(data["file_content"])[1] | |
47 | + new_name = os.path.join("files","file_" + str(time.time()) + os.path.splitext(data["file_content"])[1]) | |
48 | 48 | |
49 | 49 | os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_name)) |
50 | 50 | |
... | ... | @@ -87,7 +87,7 @@ class SimpleFileLinkSerializer(serializers.ModelSerializer): |
87 | 87 | if topic_exist.exists(): |
88 | 88 | topic = topic_exist[0] |
89 | 89 | else: |
90 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
90 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
91 | 91 | |
92 | 92 | data["topic"] = topic |
93 | 93 | else: |
... | ... | @@ -161,7 +161,7 @@ class CompleteFileLinkSerializer(serializers.ModelSerializer): |
161 | 161 | |
162 | 162 | path = files.extract(data["file_content"], dst_path) |
163 | 163 | |
164 | - new_name = "files/file_" + str(time.time()) + os.path.splitext(data["file_content"])[1] | |
164 | + new_name = os.path.join("files","file_" + str(time.time()) + os.path.splitext(data["file_content"])[1]) | |
165 | 165 | |
166 | 166 | os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_name)) |
167 | 167 | |
... | ... | @@ -197,7 +197,7 @@ class CompleteFileLinkSerializer(serializers.ModelSerializer): |
197 | 197 | if topic_exist.exists(): |
198 | 198 | topic = topic_exist[0] |
199 | 199 | else: |
200 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
200 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
201 | 201 | |
202 | 202 | data["topic"] = topic |
203 | 203 | else: | ... | ... |
file_link/templates/file_links/_form.html
... | ... | @@ -234,7 +234,7 @@ |
234 | 234 | <div class="col-md-12"> |
235 | 235 | <a data-parent="#professors_accordion" data-toggle="collapse" href="#students"> |
236 | 236 | <h4 class="panel-title"> |
237 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{{ form.students.label }}</label> | |
237 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{% trans 'Students' %}</label> | |
238 | 238 | </h4> |
239 | 239 | </a> |
240 | 240 | </div> | ... | ... |
goals/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | @@ -403,7 +403,7 @@ msgstr "Submeteu" |
403 | 403 | msgid "%s Instance" |
404 | 404 | msgstr "Instância de %s" |
405 | 405 | |
406 | -#: goals/utils.py:59 goals/views.py:1224 | |
406 | +#: goals/utils.py:61 goals/views.py:1224 | |
407 | 407 | #, python-format |
408 | 408 | msgid "Last message in %s" |
409 | 409 | msgstr "Última mensagem em %s" | ... | ... |
goals/serializers.py
... | ... | @@ -63,7 +63,7 @@ class SimpleGoalSerializer(serializers.ModelSerializer): |
63 | 63 | if topic_exist.exists(): |
64 | 64 | topic = topic_exist[0] |
65 | 65 | else: |
66 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
66 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
67 | 67 | |
68 | 68 | data["topic"] = topic |
69 | 69 | else: |
... | ... | @@ -154,7 +154,7 @@ class CompleteGoalSerializer(serializers.ModelSerializer): |
154 | 154 | if topic_exist.exists(): |
155 | 155 | topic = topic_exist[0] |
156 | 156 | else: |
157 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
157 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
158 | 158 | |
159 | 159 | data["topic"] = topic |
160 | 160 | else: | ... | ... |
goals/utils.py
... | ... | @@ -10,6 +10,8 @@ from django.utils.translation import ugettext_lazy as _ |
10 | 10 | |
11 | 11 | from channels import Group |
12 | 12 | |
13 | +from api.utils import sendChatPushNotification | |
14 | + | |
13 | 15 | from chat.models import Conversation, TalkMessages, ChatVisualizations |
14 | 16 | from users.models import User |
15 | 17 | |
... | ... | @@ -63,5 +65,7 @@ def brodcast_dificulties(request, message, subject): |
63 | 65 | |
64 | 66 | Group("user-%s" % p.id).send({'text': notification}) |
65 | 67 | |
68 | + sendChatPushNotification(p, msg) | |
69 | + | |
66 | 70 | ChatVisualizations.objects.create(viewed = False, message = msg, user = p) |
67 | 71 | ... | ... |
links/forms.py
... | ... | @@ -3,7 +3,9 @@ from django import forms |
3 | 3 | from django.utils.translation import ugettext_lazy as _ |
4 | 4 | from django.utils.html import strip_tags |
5 | 5 | from django.core.exceptions import ValidationError |
6 | + | |
6 | 7 | from subjects.models import Tag |
8 | +from subjects.forms import ParticipantsMultipleChoiceField | |
7 | 9 | |
8 | 10 | from pendencies.forms import PendenciesForm |
9 | 11 | from .models import Link |
... | ... | @@ -11,6 +13,8 @@ from .models import Link |
11 | 13 | class LinkForm(forms.ModelForm): |
12 | 14 | subject = None |
13 | 15 | MAX_UPLOAD_SIZE = 10*1024*1024 |
16 | + | |
17 | + students = ParticipantsMultipleChoiceField(queryset = None, required = False) | |
14 | 18 | |
15 | 19 | def __init__(self, *args, **kwargs): |
16 | 20 | super(LinkForm, self).__init__(*args, **kwargs) | ... | ... |
links/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | @@ -18,27 +18,27 @@ msgstr "" |
18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
20 | 20 | |
21 | -#: links/forms.py:27 | |
21 | +#: links/forms.py:31 | |
22 | 22 | msgid "Tags" |
23 | 23 | msgstr "Tags" |
24 | 24 | |
25 | -#: links/forms.py:28 | |
25 | +#: links/forms.py:32 | |
26 | 26 | msgid "Website URL" |
27 | 27 | msgstr "URL do site:" |
28 | 28 | |
29 | -#: links/forms.py:34 | |
29 | +#: links/forms.py:38 | |
30 | 30 | msgid "Link name" |
31 | 31 | msgstr "Nome do Link" |
32 | 32 | |
33 | -#: links/forms.py:35 | |
33 | +#: links/forms.py:39 | |
34 | 34 | msgid "End View" |
35 | 35 | msgstr "" |
36 | 36 | |
37 | -#: links/forms.py:36 | |
37 | +#: links/forms.py:40 | |
38 | 38 | msgid "End View Date" |
39 | 39 | msgstr "Data final para visualizar" |
40 | 40 | |
41 | -#: links/forms.py:64 | |
41 | +#: links/forms.py:68 | |
42 | 42 | msgid "There is already a link with this name on this subject" |
43 | 43 | msgstr "Ja existe um link com este nome neste Assunto" |
44 | 44 | ... | ... |
links/serializers.py
... | ... | @@ -51,7 +51,7 @@ class SimpleLinkSerializer(serializers.ModelSerializer): |
51 | 51 | if topic_exist.exists(): |
52 | 52 | topic = topic_exist[0] |
53 | 53 | else: |
54 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
54 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
55 | 55 | |
56 | 56 | data["topic"] = topic |
57 | 57 | else: |
... | ... | @@ -134,7 +134,7 @@ class CompleteLinkSerializer(serializers.ModelSerializer): |
134 | 134 | if topic_exist.exists(): |
135 | 135 | topic = topic_exist[0] |
136 | 136 | else: |
137 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
137 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
138 | 138 | |
139 | 139 | data["topic"] = topic |
140 | 140 | else: | ... | ... |
links/templates/links/_form.html
... | ... | @@ -219,7 +219,7 @@ |
219 | 219 | <div class="col-md-12"> |
220 | 220 | <a data-parent="#professors_accordion" data-toggle="collapse" href="#students"> |
221 | 221 | <h4 class="panel-title"> |
222 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{{ form.students.label }}</label> | |
222 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{% trans 'Students' %}</label> | |
223 | 223 | </h4> |
224 | 224 | </a> |
225 | 225 | </div> | ... | ... |
log/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
mailsender/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
mural/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | @@ -32,7 +32,8 @@ msgstr "Pedir ajuda" |
32 | 32 | msgid "This field is required." |
33 | 33 | msgstr "Esse campo é obrigatório." |
34 | 34 | |
35 | -#: mural/forms.py:38 mural/forms.py:123 | |
35 | +#: mural/forms.py:38 mural/forms.py:123 mural/templates/mural/_form.html:103 | |
36 | +#: mural/templates/mural/_form_comment.html:68 | |
36 | 37 | msgid "The image is too large. It should have less than 5MB." |
37 | 38 | msgstr "A imagem é muito grande. Ela deve possuir 5MB ou menos." |
38 | 39 | |
... | ... | @@ -40,7 +41,8 @@ msgstr "A imagem é muito grande. Ela deve possuir 5MB ou menos." |
40 | 41 | msgid "Choose an especific resource" |
41 | 42 | msgstr "Escolha um recurso específico" |
42 | 43 | |
43 | -#: mural/models.py:18 | |
44 | +#: mural/models.py:18 mural/templates/mural/_form.html:104 | |
45 | +#: mural/templates/mural/_form_comment.html:69 | |
44 | 46 | msgid "File not supported." |
45 | 47 | msgstr "Arquivo não suportado." |
46 | 48 | |
... | ... | @@ -97,7 +99,7 @@ msgid "Resource" |
97 | 99 | msgstr "Recurso" |
98 | 100 | |
99 | 101 | #: mural/models.py:105 mural/models.py:119 |
100 | -#: mural/templates/mural/_form_comment.html:66 | |
102 | +#: mural/templates/mural/_form_comment.html:76 | |
101 | 103 | msgid "Comment" |
102 | 104 | msgstr "Comentar" |
103 | 105 | |
... | ... | @@ -119,14 +121,14 @@ msgstr "Clique ou solte a imagem aqui" |
119 | 121 | msgid "The picture could not exceed 5MB." |
120 | 122 | msgstr "A imagem não pode exceder 5MB." |
121 | 123 | |
122 | -#: mural/templates/mural/_form.html:100 | |
124 | +#: mural/templates/mural/_form.html:111 | |
123 | 125 | msgctxt "button" |
124 | 126 | msgid "Post" |
125 | 127 | msgstr "Postar" |
126 | 128 | |
127 | -#: mural/templates/mural/_form.html:101 | |
128 | -#: mural/templates/mural/_form_comment.html:67 | |
129 | -#: mural/templates/mural/_form_comment.html:85 | |
129 | +#: mural/templates/mural/_form.html:112 | |
130 | +#: mural/templates/mural/_form_comment.html:77 | |
131 | +#: mural/templates/mural/_form_comment.html:95 | |
130 | 132 | msgid "Cancel" |
131 | 133 | msgstr "Cancelar" |
132 | 134 | |
... | ... | @@ -134,15 +136,15 @@ msgstr "Cancelar" |
134 | 136 | msgid "Choose your photo..." |
135 | 137 | msgstr "Escolha sua foto..." |
136 | 138 | |
137 | -#: mural/templates/mural/_form_comment.html:78 | |
139 | +#: mural/templates/mural/_form_comment.html:88 | |
138 | 140 | msgid "Insert here the name of the user you wish to mark in this comment" |
139 | 141 | msgstr "Insira aqui o nome do usuário que você quer marcar nesse comentário" |
140 | 142 | |
141 | -#: mural/templates/mural/_form_comment.html:84 | |
143 | +#: mural/templates/mural/_form_comment.html:94 | |
142 | 144 | msgid "Mark" |
143 | 145 | msgstr "Marcar" |
144 | 146 | |
145 | -#: mural/templates/mural/_form_comment.html:100 | |
147 | +#: mural/templates/mural/_form_comment.html:110 | |
146 | 148 | msgid "Mark User" |
147 | 149 | msgstr "Marcar Usuário" |
148 | 150 | ... | ... |
mural/models.py
... | ... | @@ -10,9 +10,9 @@ from subjects.models import Subject |
10 | 10 | from topics.models import KnowsChild, Resource |
11 | 11 | from users.models import User |
12 | 12 | |
13 | -def validate_img_extension(value): | |
14 | - valid_formats = ['image/jpeg','image/x-citrix-jpeg','image/png','image/x-citrix-png','image/x-png'] | |
13 | +valid_formats = ['image/jpeg','image/x-citrix-jpeg','image/png','image/x-citrix-png','image/x-png','image/gif'] | |
15 | 14 | |
15 | +def validate_img_extension(value): | |
16 | 16 | if hasattr(value.file, 'content_type'): |
17 | 17 | if not value.file.content_type in valid_formats: |
18 | 18 | raise ValidationError(_('File not supported.')) | ... | ... |
mural/templates/mural/_form.html
... | ... | @@ -80,24 +80,35 @@ |
80 | 80 | |
81 | 81 | <span id="helpBlock" class="help-block">{{ form.image.help_text }}</span> |
82 | 82 | |
83 | - {% if form.image.errors %} | |
84 | - <div class="alert alert-danger alert-dismissible" role="alert"> | |
85 | - <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
86 | - <span aria-hidden="true">×</span> | |
87 | - </button> | |
88 | - <ul> | |
89 | - {% for error in form.image.errors %} | |
90 | - <li>{{ error }}</li> | |
91 | - {% endfor %} | |
92 | - </ul> | |
93 | - </div> | |
94 | - {% endif %} | |
83 | + </div> | |
84 | + | |
85 | + {% if form.image.errors %} | |
86 | + <div class="alert alert-danger alert-dismissible" role="alert"> | |
87 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
88 | + <span aria-hidden="true">×</span> | |
89 | + </button> | |
90 | + <ul> | |
91 | + {% for error in form.image.errors %} | |
92 | + <li>{{ error }}</li> | |
93 | + {% endfor %} | |
94 | + </ul> | |
95 | + </div> | |
96 | + {% endif %} | |
97 | + | |
98 | + <div class="alert alert-danger alert-dismissible client-file-errors" style="display:none" role="alert"> | |
99 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
100 | + <span aria-hidden="true">×</span> | |
101 | + </button> | |
102 | + <ul> | |
103 | + <li class="size" style="display:none">{% trans "The image is too large. It should have less than 5MB." %}</li> | |
104 | + <li class="format" style="display:none">{% trans 'File not supported.' %}</li> | |
105 | + </ul> | |
95 | 106 | </div> |
96 | 107 | </form> |
97 | 108 | </div> |
98 | 109 | <div class="modal-footer"> |
99 | 110 | <div class="col-md-12"> |
100 | - <button type="submit" id="button" form="post-form" class="btn btn-success btn-raised post-button pull-left">{% trans "Post" context "button"%}</button> | |
111 | + <button type="submit" id="button" form="post-form" class="btn btn-success btn-raised post-button pull-left">{% trans "Post" context "button" %}</button> | |
101 | 112 | <button type="button" class="btn btn-raised btn-default pull-right" data-dismiss="modal">{% trans "Cancel" %}</button> |
102 | 113 | </div> |
103 | 114 | </div> |
... | ... | @@ -147,10 +158,33 @@ |
147 | 158 | // file selection |
148 | 159 | function FileSelectHandler(e) { |
149 | 160 | var files = e.target.files || e.dataTransfer.files, |
150 | - parent = $(e.target.offsetParent); | |
161 | + parent = $(e.target.offsetParent), | |
162 | + max_size = 5*1024*1024; | |
163 | + | |
164 | + $(".client-file-errors").hide(); | |
165 | + $(".size").hide(); | |
166 | + $(".format").hide(); | |
167 | + $("#button").prop('disable', false); | |
168 | + $("#button").prop('disabled', false); | |
151 | 169 | |
152 | 170 | // process all File objects |
153 | 171 | for (var i = 0, f; f = files[i]; i++) { |
172 | + if (f.size > max_size) { | |
173 | + $("#button").prop('disable', true); | |
174 | + $("#button").prop('disabled', true); | |
175 | + | |
176 | + $(".client-file-errors").show(); | |
177 | + $(".size").show(); | |
178 | + } | |
179 | + | |
180 | + if (!f.type.match(/^image\//)) { | |
181 | + $("#button").prop('disable', true); | |
182 | + $("#button").prop('disabled', true); | |
183 | + | |
184 | + $(".client-file-errors").show(); | |
185 | + $(".format").show(); | |
186 | + } | |
187 | + | |
154 | 188 | parent.find('.filedrag').html(f.name); |
155 | 189 | } |
156 | 190 | } | ... | ... |
mural/templates/mural/_form_comment.html
... | ... | @@ -45,19 +45,29 @@ |
45 | 45 | </div> |
46 | 46 | |
47 | 47 | <span id="helpBlock" class="help-block">{{ form.image.help_text }}</span> |
48 | + </div> | |
48 | 49 | |
49 | - {% if form.image.errors %} | |
50 | - <div class="alert alert-danger alert-dismissible" role="alert"> | |
51 | - <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
52 | - <span aria-hidden="true">×</span> | |
53 | - </button> | |
54 | - <ul> | |
55 | - {% for error in form.image.errors %} | |
56 | - <li>{{ error }}</li> | |
57 | - {% endfor %} | |
58 | - </ul> | |
59 | - </div> | |
60 | - {% endif %} | |
50 | + {% if form.image.errors %} | |
51 | + <div class="alert alert-danger alert-dismissible" role="alert"> | |
52 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
53 | + <span aria-hidden="true">×</span> | |
54 | + </button> | |
55 | + <ul> | |
56 | + {% for error in form.image.errors %} | |
57 | + <li>{{ error }}</li> | |
58 | + {% endfor %} | |
59 | + </ul> | |
60 | + </div> | |
61 | + {% endif %} | |
62 | + | |
63 | + <div class="alert alert-danger alert-dismissible client-file-errors" style="display:none" role="alert"> | |
64 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
65 | + <span aria-hidden="true">×</span> | |
66 | + </button> | |
67 | + <ul> | |
68 | + <li class="size" style="display:none">{% trans "The image is too large. It should have less than 5MB." %}</li> | |
69 | + <li class="format" style="display:none">{% trans 'File not supported.' %}</li> | |
70 | + </ul> | |
61 | 71 | </div> |
62 | 72 | </form> |
63 | 73 | </div> |
... | ... | @@ -99,6 +109,8 @@ |
99 | 109 | contents: '<i class="fa fa-user"/>', |
100 | 110 | tooltip: '{% trans "Mark User" %}', |
101 | 111 | click: function () { |
112 | + context.invoke('saveRange'); | |
113 | + | |
102 | 114 | var modal_content = $("#add-user-modal").html(); |
103 | 115 | var modal = document.createElement('div'); |
104 | 116 | $(modal).addClass('modal'); |
... | ... | @@ -119,12 +131,9 @@ |
119 | 131 | $(node).addClass('marked_user'); |
120 | 132 | $(node).html(value); |
121 | 133 | |
122 | - var code = context.invoke('code'); | |
123 | - | |
124 | - var new_code = $(code).append(node).append(" "); | |
125 | - | |
126 | - context.invoke('code', new_code); | |
127 | - | |
134 | + context.invoke('restoreRange'); | |
135 | + context.invoke('pasteHTML', node); | |
136 | + | |
128 | 137 | $(modal).modal('hide'); |
129 | 138 | }); |
130 | 139 | } |
... | ... | @@ -225,10 +234,33 @@ |
225 | 234 | // file selection |
226 | 235 | function FileSelectHandler(e) { |
227 | 236 | var files = e.target.files || e.dataTransfer.files, |
228 | - parent = $(e.target.offsetParent); | |
237 | + parent = $(e.target.offsetParent), | |
238 | + max_size = 5*1024*1024; | |
239 | + | |
240 | + $(".client-file-errors").hide(); | |
241 | + $(".size").hide(); | |
242 | + $(".format").hide(); | |
243 | + $("#button").prop('disable', false); | |
244 | + $("#button").prop('disabled', false); | |
229 | 245 | |
230 | 246 | // process all File objects |
231 | 247 | for (var i = 0, f; f = files[i]; i++) { |
248 | + if (f.size > max_size) { | |
249 | + $("#button").prop('disable', true); | |
250 | + $("#button").prop('disabled', true); | |
251 | + | |
252 | + $(".client-file-errors").show(); | |
253 | + $(".size").show(); | |
254 | + } | |
255 | + | |
256 | + if (!f.type.match(/^image\//)) { | |
257 | + $("#button").prop('disable', true); | |
258 | + $("#button").prop('disabled', true); | |
259 | + | |
260 | + $(".client-file-errors").show(); | |
261 | + $(".format").show(); | |
262 | + } | |
263 | + | |
232 | 264 | parent.find('.filedrag').html(f.name); |
233 | 265 | } |
234 | 266 | } | ... | ... |
news/forms.py
... | ... | @@ -31,7 +31,7 @@ class NewsForm(forms.ModelForm): |
31 | 31 | image = Image.open(self.instance.image) |
32 | 32 | if not x is None: |
33 | 33 | cropped_image = image.crop((x, y, w+x, h+y)) |
34 | - resized_image = cropped_image.resize((1200, 250), Image.ANTIALIAS) | |
34 | + resized_image = cropped_image.resize((1200, 400), Image.ANTIALIAS) | |
35 | 35 | |
36 | 36 | folder_path = join(settings.MEDIA_ROOT, 'news') |
37 | 37 | #check if the folder already exists | ... | ... |
news/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | @@ -22,7 +22,7 @@ msgstr "" |
22 | 22 | msgid "This field is required" |
23 | 23 | msgstr "Este campo é obrigatório." |
24 | 24 | |
25 | -#: news/forms.py:74 | |
25 | +#: news/forms.py:74 news/templates/news/_form.html:72 | |
26 | 26 | msgid "The image is too large. It should have less than 5MB." |
27 | 27 | msgstr "A imagem é muito grande. Ela deve ter menos que 5MB." |
28 | 28 | |
... | ... | @@ -30,7 +30,7 @@ msgstr "A imagem é muito grande. Ela deve ter menos que 5MB." |
30 | 30 | msgid "This field is required." |
31 | 31 | msgstr "Este campo é obrigatório." |
32 | 32 | |
33 | -#: news/models.py:15 | |
33 | +#: news/models.py:15 news/templates/news/_form.html:73 | |
34 | 34 | msgid "File not supported." |
35 | 35 | msgstr "Arquivo não suportado" |
36 | 36 | |
... | ... | @@ -58,19 +58,27 @@ msgstr "Data de criação" |
58 | 58 | msgid "Creator" |
59 | 59 | msgstr "Autor" |
60 | 60 | |
61 | -#: news/models.py:25 news/models.py:26 news/templates/news/list.html:11 | |
61 | +#: news/models.py:26 news/models.py:27 news/templates/news/list.html:11 | |
62 | 62 | msgid "News" |
63 | 63 | msgstr "Notícia" |
64 | 64 | |
65 | -#: news/templates/news/_form.html:12 | |
65 | +#: news/templates/news/_form.html:14 | |
66 | 66 | msgid "Choose your photo..." |
67 | 67 | msgstr "Escolha a foto" |
68 | 68 | |
69 | -#: news/templates/news/_form.html:55 | |
69 | +#: news/templates/news/_form.html:28 | |
70 | +msgid "Click or drop the file here" | |
71 | +msgstr "Clique ou solte o arquivo aqui." | |
72 | + | |
73 | +#: news/templates/news/_form.html:30 | |
74 | +msgid "The photo could not exceed 5MB." | |
75 | +msgstr "A imagem não pode exceder 5MB." | |
76 | + | |
77 | +#: news/templates/news/_form.html:81 | |
70 | 78 | msgid "Save" |
71 | 79 | msgstr "Salvar" |
72 | 80 | |
73 | -#: news/templates/news/_form.html:58 | |
81 | +#: news/templates/news/_form.html:84 | |
74 | 82 | msgid "Cancel" |
75 | 83 | msgstr "Cancelar" |
76 | 84 | |
... | ... | @@ -104,7 +112,7 @@ msgid "Search by title, author or date" |
104 | 112 | msgstr "Pesquisar por título, autor ou data" |
105 | 113 | |
106 | 114 | #: news/templates/news/list.html:52 news/templates/news/search.html:45 |
107 | -#: news/views.py:109 | |
115 | +#: news/views.py:103 | |
108 | 116 | msgid "Create News" |
109 | 117 | msgstr "Criar notícia" |
110 | 118 | |
... | ... | @@ -120,11 +128,11 @@ msgstr "Nenhuma notícia encontrada" |
120 | 128 | msgid "Search News" |
121 | 129 | msgstr "Pesquisar Notícia" |
122 | 130 | |
123 | -#: news/templates/news/update.html:7 news/views.py:137 | |
131 | +#: news/templates/news/update.html:7 news/views.py:147 | |
124 | 132 | msgid "Update News" |
125 | 133 | msgstr "Atualizar Notícia" |
126 | 134 | |
127 | -#: news/templates/news/view.html:32 | |
135 | +#: news/templates/news/view.html:35 | |
128 | 136 | msgid "Print News" |
129 | 137 | msgstr "Imprimir Notícia" |
130 | 138 | |
... | ... | @@ -132,7 +140,7 @@ msgstr "Imprimir Notícia" |
132 | 140 | msgid "Visualize News" |
133 | 141 | msgstr "Visualizar Notícia" |
134 | 142 | |
135 | -#: news/views.py:103 news/views.py:131 | |
143 | +#: news/views.py:109 news/views.py:153 | |
136 | 144 | msgid "News successfully created!" |
137 | 145 | msgstr "Notícia criada com sucesso" |
138 | 146 | |
... | ... | @@ -144,12 +152,3 @@ msgstr "Notícia \"%s\" removida com sucesso" |
144 | 152 | #: news/views.py:228 |
145 | 153 | msgid "Delete News" |
146 | 154 | msgstr "Apagar Notícia" |
147 | - | |
148 | -#~ msgid "Create news" | |
149 | -#~ msgstr "Criar notícia" | |
150 | - | |
151 | -#~ msgid "There is already a news with this name" | |
152 | -#~ msgstr "Já existe uma notícia com esse nome" | |
153 | - | |
154 | -#~ msgid "Name" | |
155 | -#~ msgstr "Nome" | ... | ... |
news/models.py
... | ... | @@ -7,9 +7,9 @@ from django.utils.translation import ugettext_lazy as _ |
7 | 7 | from django.core.exceptions import ValidationError |
8 | 8 | from users.models import User |
9 | 9 | |
10 | -def validate_img_extension(value): | |
11 | - valid_formats = ['image/jpeg','image/x-citrix-jpeg','image/png','image/x-citrix-png','image/x-png'] | |
10 | +valid_formats = ['image/jpeg','image/x-citrix-jpeg','image/png','image/x-citrix-png','image/x-png'] | |
12 | 11 | |
12 | +def validate_img_extension(value): | |
13 | 13 | if hasattr(value.file, 'content_type'): |
14 | 14 | if not value.file.content_type in valid_formats: |
15 | 15 | raise ValidationError(_('File not supported.')) |
... | ... | @@ -21,6 +21,7 @@ class News(models.Model): |
21 | 21 | content = models.TextField(_('News Content'), blank = True) |
22 | 22 | create_date = models.DateTimeField(_('Create Date'), auto_now_add = True) |
23 | 23 | creator = models.ForeignKey(User, verbose_name = _('Creator'), related_name = "news_creator_user", null = True) |
24 | + | |
24 | 25 | class Meta: |
25 | 26 | verbose_name = _('News') |
26 | 27 | verbose_name_plural = _('News') | ... | ... |
news/templates/news/_form.html
1 | 1 | {% load static i18n %} |
2 | 2 | {% load widget_tweaks %} |
3 | 3 | |
4 | -<form method="post" action="" enctype="multipart/form-data"> | |
4 | +<form id="news-form" method="post" action="" enctype="multipart/form-data"> | |
5 | 5 | {% csrf_token %} |
6 | 6 | {% for field in form %} |
7 | 7 | <div class="form-group{% if form.has_error %} has-error {% endif %} is-fileinput col-lg-12 col-md-12 col-sm-12"> |
8 | 8 | {% if field.auto_id == 'id_image' %} |
9 | - <label for="{{ field.auto_id }}">{{ field.label }} <span>*</span></label> | |
10 | - {% render_field field class='form-control' %} | |
11 | - <div class="input-group"> | |
12 | - <input type="text" readonly="" class="form-control" id="pic_holder" placeholder="{% trans 'Choose your photo...' %}"> | |
13 | - <span class="input-group-btn input-group-sm"> | |
14 | - <button type="button" class="btn btn-fab btn-fab-mini"> | |
15 | - <i class="material-icons">image</i> | |
16 | - </button> | |
17 | - </span> | |
18 | - </div> | |
9 | + <label for="{{ field.auto_id }}">{{ field.label }} <span>*</span></label> | |
10 | + | |
11 | + {% render_field field class='file-selector' data-mimetypes=mimeTypes %} | |
12 | + | |
13 | + <div class="input-group common-file-input"> | |
14 | + <input type="text" readonly="" class="form-control" placeholder="{% trans 'Choose your photo...' %}"> | |
15 | + <span class="input-group-btn input-group-sm"> | |
16 | + <button type="button" class="btn btn-fab btn-fab-mini"> | |
17 | + <i class="material-icons">attach_file</i> | |
18 | + </button> | |
19 | + </span> | |
20 | + </div> | |
21 | + | |
22 | + <div class="filedrag"> | |
23 | + {% if news.image %} | |
24 | + <i class="fa fa-file-archive-o"></i> <br /> | |
25 | + | |
26 | + <small>{{ news.image.path }}</small> | |
27 | + {% else %} | |
28 | + {% trans 'Click or drop the file here' %}<br /> | |
29 | + | |
30 | + <small>{% trans 'The photo could not exceed 5MB.' %}</small> | |
31 | + {% endif %} | |
32 | + </div> | |
19 | 33 | |
20 | 34 | |
21 | 35 | {% elif field.auto_id == 'id_content' %} |
... | ... | @@ -35,19 +49,31 @@ |
35 | 49 | |
36 | 50 | {% endif %} |
37 | 51 | <span id="helpBlock" class="help-block">{{ field.help_text }}</span> |
38 | - {% if field.errors %} | |
39 | - <div class="alert alert-danger alert-dismissible" role="alert"> | |
40 | - <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
41 | - <span aria-hidden="true">×</span> | |
42 | - </button> | |
43 | - <ul> | |
44 | - {% for error in field.errors %} | |
45 | - <li>{{ error }}</li> | |
46 | - {% endfor %} | |
47 | - </ul> | |
48 | - </div> | |
49 | - {% endif %} | |
50 | 52 | </div> |
53 | + {% if field.errors %} | |
54 | + <div class="col-lg-12 col-md-12 col-sm-12 alert alert-danger alert-dismissible" role="alert"> | |
55 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
56 | + <span aria-hidden="true">×</span> | |
57 | + </button> | |
58 | + <ul> | |
59 | + {% for error in field.errors %} | |
60 | + <li>{{ error }}</li> | |
61 | + {% endfor %} | |
62 | + </ul> | |
63 | + </div> | |
64 | + {% endif %} | |
65 | + | |
66 | + {% if field.auto_id == 'id_image' %} | |
67 | + <div class="col-lg-12 col-md-12 col-sm-12 alert alert-danger alert-dismissible client-file-errors" style="display:none" role="alert"> | |
68 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
69 | + <span aria-hidden="true">×</span> | |
70 | + </button> | |
71 | + <ul> | |
72 | + <li class="size" style="display:none">{% trans "The image is too large. It should have less than 5MB." %}</li> | |
73 | + <li class="format" style="display:none">{% trans 'File not supported.' %}</li> | |
74 | + </ul> | |
75 | + </div> | |
76 | + {% endif %} | |
51 | 77 | {% endfor %} |
52 | 78 | <div class="row"> |
53 | 79 | <div class="col-lg-12 col-md-12 col-sm-12"> |
... | ... | @@ -62,5 +88,42 @@ |
62 | 88 | |
63 | 89 | </form> |
64 | 90 | <script src="{% static 'js/crop_news.js' %}"></script> <!-- Js for cropper--> |
91 | +<script type="text/javascript"> | |
92 | +// check if browser supports drag n drop | |
93 | +// call initialization file | |
94 | +if (window.File && window.FileList && window.FileReader) { | |
95 | + Init(); | |
96 | +} | |
97 | + | |
98 | +// initialize | |
99 | +function Init() { | |
100 | + var small = $(".file-selector"), | |
101 | + filedrag = $(".filedrag"), | |
102 | + common = $(".common-file-input"); | |
103 | + | |
104 | + // file select | |
105 | + small.on("change", FileSelectHandler); | |
106 | + | |
107 | + // is XHR2 available? | |
108 | + var xhr = new XMLHttpRequest(); | |
109 | + if (xhr.upload) { | |
110 | + // file drop | |
111 | + filedrag.on("drop", FileSelectHandler); | |
112 | + filedrag.attr('style', 'display:block'); | |
113 | + common.attr('style', 'display:none'); | |
114 | + } | |
115 | +} | |
116 | + | |
117 | +// file selection | |
118 | +function FileSelectHandler(e) { | |
119 | + var files = e.target.files || e.dataTransfer.files, | |
120 | + parent = $(e.target.offsetParent); | |
121 | + // process all File objects | |
122 | + for (var i = 0, f; f = files[i]; i++) { | |
123 | + parent.find('.filedrag').html(f.name); | |
124 | + } | |
125 | +} | |
126 | +</script> | |
127 | + | |
65 | 128 | |
66 | 129 | {% include 'users/modal_crop.html' %} | ... | ... |
news/templates/news/view.html
... | ... | @@ -29,9 +29,16 @@ |
29 | 29 | <div class="row-fluid panel panel-default" > |
30 | 30 | <div class="panel-body" id="printArea"> |
31 | 31 | <div class="col-md-12" style="display:inline-block"> |
32 | - <h2><b>{{new.title}}</b></h2> <button style="text-transform:none; text-decoration: underline;" type="button" class="pull-right btn btn-default btn-sm" id="printButton" name="button">{% trans "Print News" %} <i class="fa fa-print" aria-hidden="true"></i></button><br> | |
32 | + <h2><b>{{new.title}}</b></h2> | |
33 | + </div> | |
34 | + <div class="col-md-12" style="margin-top: -30px;"> | |
35 | + <button style="text-transform:none; text-decoration: underline;" type="button" class="pull-right btn btn-default btn-sm" id="printButton" name="button">{% trans "Print News" %} | |
36 | + <i class="fa fa-print" aria-hidden="true"></i></button><br> | |
33 | 37 | <p>{{new.creator}}, em {{new.create_date}}</p> |
34 | 38 | </div> |
39 | + <div class="col-md-12" style="margin-top: 20px; margin-bottom: 20px;"> | |
40 | + <span><img src="{% if new.image %}{{ new.image.url }}{% endif %}" width="100%"></span> | |
41 | + </div> | |
35 | 42 | <div class="col-md-12"> |
36 | 43 | <br> |
37 | 44 | {% autoescape off %} | ... | ... |
news/views.py
... | ... | @@ -8,7 +8,7 @@ from django.contrib import messages |
8 | 8 | from django.utils.translation import ugettext_lazy as _ |
9 | 9 | from django.db.models import Q, Count |
10 | 10 | |
11 | -from .models import News | |
11 | +from .models import News, valid_formats | |
12 | 12 | from .forms import NewsForm |
13 | 13 | |
14 | 14 | class VisualizeNews(LoginRequiredMixin,LogMixin,generic.ListView): |
... | ... | @@ -96,19 +96,19 @@ class CreateNewsView(LoginRequiredMixin,LogMixin,generic.edit.CreateView): |
96 | 96 | |
97 | 97 | super(CreateNewsView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) |
98 | 98 | |
99 | - | |
100 | 99 | return super(CreateNewsView, self).form_valid(form) |
101 | 100 | |
102 | - def get_success_url(self): | |
103 | - messages.success(self.request, _('News successfully created!')) | |
104 | - | |
105 | - return reverse_lazy('news:view', kwargs = {'slug': self.object.slug} ) | |
106 | - | |
107 | 101 | def get_context_data (self, **kwargs): |
108 | 102 | context = super(CreateNewsView, self).get_context_data(**kwargs) |
109 | 103 | context['title'] = _("Create News") |
104 | + context['mimeTypes'] = valid_formats | |
110 | 105 | |
111 | 106 | return context |
107 | + | |
108 | + def get_success_url(self): | |
109 | + messages.success(self.request, _('News successfully created!')) | |
110 | + | |
111 | + return reverse_lazy('news:view', kwargs = {'slug': self.object.slug} ) | |
112 | 112 | |
113 | 113 | class UpdateNewsView(LoginRequiredMixin,LogMixin,generic.UpdateView): |
114 | 114 | log_action = "update" |
... | ... | @@ -127,17 +127,6 @@ class UpdateNewsView(LoginRequiredMixin,LogMixin,generic.UpdateView): |
127 | 127 | return redirect(reverse_lazy('subjects:home')) |
128 | 128 | return super(UpdateNewsView, self).dispatch(request, *args, **kwargs) |
129 | 129 | |
130 | - def get_success_url(self): | |
131 | - messages.success(self.request, _('News successfully created!')) | |
132 | - | |
133 | - return reverse_lazy('news:view', kwargs = {'slug': self.object.slug} ) | |
134 | - | |
135 | - def get_context_data (self, **kwargs): | |
136 | - context = super(UpdateNewsView, self).get_context_data(**kwargs) | |
137 | - context['title'] = _("Update News") | |
138 | - | |
139 | - return context | |
140 | - | |
141 | 130 | def form_valid(self, form): |
142 | 131 | self.object = form.save(commit = False) |
143 | 132 | creator = self.request.user |
... | ... | @@ -151,8 +140,19 @@ class UpdateNewsView(LoginRequiredMixin,LogMixin,generic.UpdateView): |
151 | 140 | |
152 | 141 | super(UpdateNewsView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) |
153 | 142 | |
154 | - | |
155 | 143 | return super(UpdateNewsView, self).form_valid(form) |
144 | + | |
145 | + def get_context_data (self, **kwargs): | |
146 | + context = super(UpdateNewsView, self).get_context_data(**kwargs) | |
147 | + context['title'] = _("Update News") | |
148 | + context['mimeTypes'] = valid_formats | |
149 | + | |
150 | + return context | |
151 | + | |
152 | + def get_success_url(self): | |
153 | + messages.success(self.request, _('News successfully created!')) | |
154 | + | |
155 | + return reverse_lazy('news:view', kwargs = {'slug': self.object.slug} ) | |
156 | 156 | |
157 | 157 | class SearchNewsView(LoginRequiredMixin, LogMixin, generic.ListView): |
158 | 158 | login_url = reverse_lazy("users:login") | ... | ... |
notifications/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
pdf_file/forms.py
... | ... | @@ -3,6 +3,7 @@ from django.utils.translation import ugettext_lazy as _ |
3 | 3 | from django.utils.html import strip_tags |
4 | 4 | |
5 | 5 | from subjects.models import Tag |
6 | +from subjects.forms import ParticipantsMultipleChoiceField | |
6 | 7 | from resubmit.widgets import ResubmitFileWidget |
7 | 8 | |
8 | 9 | from .models import PDFFile |
... | ... | @@ -11,6 +12,8 @@ class PDFFileForm(forms.ModelForm): |
11 | 12 | subject = None |
12 | 13 | MAX_UPLOAD_SIZE = 10*1024*1024 |
13 | 14 | |
15 | + students = ParticipantsMultipleChoiceField(queryset = None, required = False) | |
16 | + | |
14 | 17 | def __init__(self, *args, **kwargs): |
15 | 18 | super(PDFFileForm, self).__init__(*args, **kwargs) |
16 | 19 | self.subject = kwargs.get('initial').get('subject', None) | ... | ... |
pdf_file/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | @@ -18,23 +18,23 @@ msgstr "" |
18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
20 | 20 | |
21 | -#: pdf_file/forms.py:25 | |
21 | +#: pdf_file/forms.py:28 | |
22 | 22 | msgid "Tags" |
23 | 23 | msgstr "Tags" |
24 | 24 | |
25 | -#: pdf_file/forms.py:30 | |
25 | +#: pdf_file/forms.py:33 | |
26 | 26 | msgid "File name" |
27 | 27 | msgstr "Nome do arquivo" |
28 | 28 | |
29 | -#: pdf_file/forms.py:51 | |
29 | +#: pdf_file/forms.py:54 | |
30 | 30 | msgid "This subject already has a pdf file with this name" |
31 | 31 | msgstr "Este assunto já possui um arquivo PDF com este nome" |
32 | 32 | |
33 | -#: pdf_file/forms.py:63 | |
33 | +#: pdf_file/forms.py:66 pdf_file/templates/pdf_file/_form.html:75 | |
34 | 34 | msgid "The file is too large. It should have less than 10MB." |
35 | 35 | msgstr "O arquivo é muito grande. Deve ser menor do que 10MB" |
36 | 36 | |
37 | -#: pdf_file/forms.py:68 | |
37 | +#: pdf_file/forms.py:71 | |
38 | 38 | msgid "This field is required." |
39 | 39 | msgstr "Este campo é requerido." |
40 | 40 | |
... | ... | @@ -50,43 +50,49 @@ msgstr "Arquivo" |
50 | 50 | msgid "Are you sure you want delete the PDF File" |
51 | 51 | msgstr "Tem certeza que deseja deletar este arquivo PDF?" |
52 | 52 | |
53 | -#: pdf_file/templates/pdf_file/_form.html:32 | |
53 | +#: pdf_file/templates/pdf_file/_form.html:33 | |
54 | 54 | msgid "Choose your file..." |
55 | 55 | msgstr "Escolha seu arquivo..." |
56 | 56 | |
57 | -#: pdf_file/templates/pdf_file/_form.html:46 | |
57 | +#: pdf_file/templates/pdf_file/_form.html:47 | |
58 | 58 | msgid "Click or drop the file here" |
59 | 59 | msgstr "Clique ou arraste o arquivo aqui." |
60 | 60 | |
61 | -#: pdf_file/templates/pdf_file/_form.html:48 | |
61 | +#: pdf_file/templates/pdf_file/_form.html:49 | |
62 | 62 | msgid "The file could not exceed 10MB." |
63 | 63 | msgstr "O arquivo não pode exceder 10MB." |
64 | 64 | |
65 | -#: pdf_file/templates/pdf_file/_form.html:68 | |
65 | +#: pdf_file/templates/pdf_file/_form.html:76 | |
66 | +#, fuzzy | |
67 | +#| msgid "File not supported, use PDF format instead." | |
68 | +msgid "File not supported." | |
69 | +msgstr "Este formato não é suportado, use PDF." | |
70 | + | |
71 | +#: pdf_file/templates/pdf_file/_form.html:80 | |
66 | 72 | msgid "Common resources settings" |
67 | 73 | msgstr "Configurações comuns à todos os recursos" |
68 | 74 | |
69 | -#: pdf_file/templates/pdf_file/_form.html:119 | |
75 | +#: pdf_file/templates/pdf_file/_form.html:131 | |
70 | 76 | msgid "Pendencies Notifications" |
71 | 77 | msgstr "Notificações pendentes" |
72 | 78 | |
73 | -#: pdf_file/templates/pdf_file/_form.html:135 | |
79 | +#: pdf_file/templates/pdf_file/_form.html:147 | |
74 | 80 | msgid "Action not performed by the user" |
75 | 81 | msgstr "Ação não permitida pelo usuário" |
76 | 82 | |
77 | -#: pdf_file/templates/pdf_file/_form.html:161 | |
83 | +#: pdf_file/templates/pdf_file/_form.html:173 | |
78 | 84 | msgid "Wished period" |
79 | 85 | msgstr "Período desejado" |
80 | 86 | |
81 | -#: pdf_file/templates/pdf_file/_form.html:257 | |
87 | +#: pdf_file/templates/pdf_file/_form.html:269 | |
82 | 88 | msgid "Attribute students to file link" |
83 | 89 | msgstr "" |
84 | 90 | |
85 | -#: pdf_file/templates/pdf_file/_form.html:277 | |
91 | +#: pdf_file/templates/pdf_file/_form.html:289 | |
86 | 92 | msgid "Attribute groups to file link" |
87 | 93 | msgstr "" |
88 | 94 | |
89 | -#: pdf_file/templates/pdf_file/_form.html:346 | |
95 | +#: pdf_file/templates/pdf_file/_form.html:358 | |
90 | 96 | msgid "Save" |
91 | 97 | msgstr "Salvar" |
92 | 98 | |
... | ... | @@ -170,8 +176,8 @@ msgstr "Editar: " |
170 | 176 | msgid "PDF could not be displayed" |
171 | 177 | msgstr "PDF não pode ser mostrado" |
172 | 178 | |
173 | -#: pdf_file/views.py:127 pdf_file/views.py:140 pdf_file/views.py:251 | |
174 | -#: pdf_file/views.py:253 pdf_file/views.py:269 pdf_file/views.py:271 | |
179 | +#: pdf_file/views.py:127 pdf_file/views.py:140 pdf_file/views.py:252 | |
180 | +#: pdf_file/views.py:254 pdf_file/views.py:270 pdf_file/views.py:272 | |
175 | 181 | msgid "Visualize" |
176 | 182 | msgstr "Visualizar" |
177 | 183 | |
... | ... | @@ -179,7 +185,7 @@ msgstr "Visualizar" |
179 | 185 | msgid "Create PDF File" |
180 | 186 | msgstr "Criar o arquivo PDF" |
181 | 187 | |
182 | -#: pdf_file/views.py:211 | |
188 | +#: pdf_file/views.py:212 | |
183 | 189 | #, python-format |
184 | 190 | msgid "" |
185 | 191 | "The PDF File \"%s\" was added to the Topic \"%s\" of the virtual environment " |
... | ... | @@ -188,67 +194,67 @@ msgstr "" |
188 | 194 | "O arquivo PDF \"%s\" foi adicionado ao topico \"%s\" do ambiente virtual " |
189 | 195 | "\"%s\" com sucesso!" |
190 | 196 | |
191 | -#: pdf_file/views.py:315 | |
197 | +#: pdf_file/views.py:316 | |
192 | 198 | msgid "Update PDF File" |
193 | 199 | msgstr "Atualize arquivo PDF" |
194 | 200 | |
195 | -#: pdf_file/views.py:326 | |
201 | +#: pdf_file/views.py:328 | |
196 | 202 | #, python-format |
197 | 203 | msgid "The PDF File \"%s\" was updated successfully!" |
198 | 204 | msgstr "O arquivo PDF \"%s\" foi atualizado com sucesso!" |
199 | 205 | |
200 | -#: pdf_file/views.py:353 | |
206 | +#: pdf_file/views.py:355 | |
201 | 207 | #, python-format |
202 | 208 | msgid "" |
203 | 209 | "The PDF File \"%s\" was removed successfully from virtual environment \"%s\"!" |
204 | 210 | msgstr "" |
205 | 211 | "O arquivo PDF \"%s\" foi removido com sucesso do ambiente virtual \"%s\" " |
206 | 212 | |
207 | -#: pdf_file/views.py:411 | |
213 | +#: pdf_file/views.py:413 | |
208 | 214 | msgid "PDF File Reports" |
209 | 215 | msgstr "Relatórios do arquivo de PDF" |
210 | 216 | |
211 | -#: pdf_file/views.py:431 | |
217 | +#: pdf_file/views.py:433 | |
212 | 218 | msgid "Realized" |
213 | 219 | msgstr "Realizada" |
214 | 220 | |
215 | -#: pdf_file/views.py:431 | |
221 | +#: pdf_file/views.py:433 | |
216 | 222 | msgid "Unrealized" |
217 | 223 | msgstr "Não Realizada" |
218 | 224 | |
219 | -#: pdf_file/views.py:431 | |
225 | +#: pdf_file/views.py:433 | |
220 | 226 | msgid "Historic" |
221 | 227 | msgstr "Histórico" |
222 | 228 | |
223 | -#: pdf_file/views.py:447 pdf_file/views.py:455 | |
229 | +#: pdf_file/views.py:449 pdf_file/views.py:457 | |
224 | 230 | msgid "View" |
225 | 231 | msgstr "Visualizar" |
226 | 232 | |
227 | -#: pdf_file/views.py:456 | |
233 | +#: pdf_file/views.py:458 | |
228 | 234 | msgid "PDF File" |
229 | 235 | msgstr "Criar o arquivo PDF" |
230 | 236 | |
231 | -#: pdf_file/views.py:461 | |
237 | +#: pdf_file/views.py:463 | |
232 | 238 | msgid "Actions about resource" |
233 | 239 | msgstr "Ações sobre o recurso" |
234 | 240 | |
235 | -#: pdf_file/views.py:462 | |
241 | +#: pdf_file/views.py:464 | |
236 | 242 | msgid "Quantity" |
237 | 243 | msgstr "Quantidade" |
238 | 244 | |
239 | -#: pdf_file/views.py:509 | |
245 | +#: pdf_file/views.py:511 | |
240 | 246 | msgid "[Photo]" |
241 | 247 | msgstr "[Imagem]" |
242 | 248 | |
243 | -#: pdf_file/views.py:521 | |
249 | +#: pdf_file/views.py:523 | |
244 | 250 | #, python-format |
245 | 251 | msgid "Last message in %s" |
246 | 252 | msgstr "Última mensagem em %s" |
247 | 253 | |
248 | -#: pdf_file/views.py:530 | |
254 | +#: pdf_file/views.py:532 | |
249 | 255 | msgid "The message was successfull sent!" |
250 | 256 | msgstr "A mensagem foi enviada com sucesso!" |
251 | 257 | |
252 | -#: pdf_file/views.py:532 | |
258 | +#: pdf_file/views.py:534 | |
253 | 259 | msgid "No user selected!" |
254 | 260 | msgstr "Nenhum usuário selecionado!" | ... | ... |
pdf_file/serializers.py
... | ... | @@ -44,7 +44,7 @@ class SimplePDFFileSerializer(serializers.ModelSerializer): |
44 | 44 | |
45 | 45 | path = files.extract(data["file"], dst_path) |
46 | 46 | |
47 | - new_name = "files/file_" + str(time.time()) + os.path.splitext(data["file"])[1] | |
47 | + new_name = os.path.join("files","file_" + str(time.time()) + os.path.splitext(data["file"])[1]) | |
48 | 48 | |
49 | 49 | os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_name)) |
50 | 50 | |
... | ... | @@ -80,7 +80,7 @@ class SimplePDFFileSerializer(serializers.ModelSerializer): |
80 | 80 | if topic_exist.exists(): |
81 | 81 | topic = topic_exist[0] |
82 | 82 | else: |
83 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
83 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
84 | 84 | |
85 | 85 | data["topic"] = topic |
86 | 86 | else: |
... | ... | @@ -154,7 +154,7 @@ class CompletePDFFileSerializer(serializers.ModelSerializer): |
154 | 154 | |
155 | 155 | path = files.extract(data["file"], dst_path) |
156 | 156 | |
157 | - new_name = "files/file_" + str(time.time()) + os.path.splitext(data["file"])[1] | |
157 | + new_name = os.path.join("files","file_" + str(time.time()) + os.path.splitext(data["file"])[1]) | |
158 | 158 | |
159 | 159 | os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_name)) |
160 | 160 | |
... | ... | @@ -191,7 +191,7 @@ class CompletePDFFileSerializer(serializers.ModelSerializer): |
191 | 191 | if topic_exist.exists(): |
192 | 192 | topic = topic_exist[0] |
193 | 193 | else: |
194 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
194 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
195 | 195 | |
196 | 196 | data["topic"] = topic |
197 | 197 | else: | ... | ... |
pdf_file/templates/pdf_file/_form.html
... | ... | @@ -236,7 +236,7 @@ |
236 | 236 | <div class="col-md-12"> |
237 | 237 | <a data-parent="#professors_accordion" data-toggle="collapse" href="#students"> |
238 | 238 | <h4 class="panel-title"> |
239 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{{ form.students.label }}</label> | |
239 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{% trans 'Students' %}</label> | |
240 | 240 | </h4> |
241 | 241 | </a> |
242 | 242 | </div> | ... | ... |
pendencies/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
reports/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
security/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
students_group/forms.py
... | ... | @@ -3,11 +3,13 @@ from django import forms |
3 | 3 | from django.utils.translation import ugettext_lazy as _ |
4 | 4 | |
5 | 5 | from subjects.models import Subject |
6 | +from subjects.forms import ParticipantsMultipleChoiceField | |
6 | 7 | |
7 | 8 | from .models import StudentsGroup |
8 | 9 | |
9 | 10 | class StudentsGroupForm(forms.ModelForm): |
10 | 11 | subject = None |
12 | + participants = ParticipantsMultipleChoiceField(queryset = None, required = False) | |
11 | 13 | |
12 | 14 | def __init__(self, *args, **kwargs): |
13 | 15 | super(StudentsGroupForm, self).__init__(*args, **kwargs) | ... | ... |
students_group/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | @@ -18,7 +18,7 @@ msgstr "" |
18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
20 | 20 | |
21 | -#: students_group/forms.py:31 | |
21 | +#: students_group/forms.py:33 | |
22 | 22 | msgid "This subject already has a group with this name" |
23 | 23 | msgstr "Esse assunto já possui um grupo com esse nome" |
24 | 24 | ... | ... |
students_group/templates/groups/_form.html
... | ... | @@ -11,7 +11,7 @@ |
11 | 11 | <div class="col-md-12"> |
12 | 12 | <a data-parent="#professors_accordion" data-toggle="collapse" href="#group_participants"> |
13 | 13 | <h4 class="panel-title"> |
14 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ field.auto_id }}">{{ field.label }}</label> | |
14 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ field.auto_id }}">{% trans 'Participants' %}</label> | |
15 | 15 | </h4> |
16 | 16 | </a> |
17 | 17 | </div> | ... | ... |
subjects/forms.py
1 | 1 | from django import forms |
2 | 2 | from django.utils.translation import ugettext_lazy as _ |
3 | 3 | import datetime |
4 | + | |
5 | +from users.models import User | |
6 | + | |
4 | 7 | from .models import Subject, Tag |
5 | 8 | |
9 | + | |
10 | +class ParticipantsMultipleChoiceField(forms.ModelMultipleChoiceField): | |
11 | + def label_from_instance(self, obj): | |
12 | + label = str(obj) + " - (" + obj.email + ")" | |
13 | + | |
14 | + return label | |
15 | + | |
6 | 16 | class CreateSubjectForm(forms.ModelForm): |
7 | 17 | category_id = None |
8 | 18 | |
19 | + students = ParticipantsMultipleChoiceField(queryset = User.objects.all(), required = False) | |
20 | + professor = ParticipantsMultipleChoiceField(queryset = User.objects.all(), required = False) | |
21 | + | |
9 | 22 | def __init__(self, *args, **kwargs): |
10 | 23 | super(CreateSubjectForm, self).__init__(*args, **kwargs) |
11 | 24 | |
... | ... | @@ -118,6 +131,9 @@ class CreateSubjectForm(forms.ModelForm): |
118 | 131 | return end_date |
119 | 132 | |
120 | 133 | class UpdateSubjectForm(forms.ModelForm): |
134 | + students = ParticipantsMultipleChoiceField(queryset = User.objects.all(), required = False) | |
135 | + professor = ParticipantsMultipleChoiceField(queryset = User.objects.all(), required = False) | |
136 | + | |
121 | 137 | def __init__(self, *args, **kwargs): |
122 | 138 | super(UpdateSubjectForm, self).__init__(*args, **kwargs) |
123 | 139 | ... | ... |
subjects/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | @@ -18,27 +18,27 @@ msgstr "" |
18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
20 | 20 | |
21 | -#: subjects/forms.py:14 subjects/forms.py:117 | |
21 | +#: subjects/forms.py:37 subjects/forms.py:144 | |
22 | 22 | msgid "Tags" |
23 | 23 | msgstr "Tags" |
24 | 24 | |
25 | -#: subjects/forms.py:67 subjects/forms.py:170 | |
25 | +#: subjects/forms.py:91 subjects/forms.py:199 | |
26 | 26 | msgid "There is another subject with this name, try another one." |
27 | 27 | msgstr "Já existe um assunto com esse nome, tente outro." |
28 | 28 | |
29 | -#: subjects/forms.py:76 | |
29 | +#: subjects/forms.py:100 | |
30 | 30 | msgid "This date must be today or after" |
31 | 31 | msgstr "Essa data deve ser hoje ou depois disso" |
32 | 32 | |
33 | -#: subjects/forms.py:86 subjects/forms.py:189 | |
33 | +#: subjects/forms.py:110 subjects/forms.py:217 | |
34 | 34 | msgid "This date must be equal subscribe begin or after" |
35 | 35 | msgstr "Essa data deve ser igual ou depois de começarem as incrições" |
36 | 36 | |
37 | -#: subjects/forms.py:96 subjects/forms.py:199 | |
37 | +#: subjects/forms.py:120 subjects/forms.py:227 | |
38 | 38 | msgid "This date must be after subscribe end" |
39 | 39 | msgstr "Essa data deve ser depois do fim das inscrições" |
40 | 40 | |
41 | -#: subjects/forms.py:105 subjects/forms.py:208 | |
41 | +#: subjects/forms.py:129 subjects/forms.py:236 | |
42 | 42 | msgid "This date must be equal init date or after" |
43 | 43 | msgstr "Essa data deve ser igual ou depois da data de início" |
44 | 44 | |
... | ... | @@ -189,7 +189,7 @@ msgid "DELETE" |
189 | 189 | msgstr "Deletar" |
190 | 190 | |
191 | 191 | #: subjects/templates/subjects/home.html:67 |
192 | -#: subjects/templates/subjects/initial.html:77 subjects/views.py:212 | |
192 | +#: subjects/templates/subjects/initial.html:77 subjects/views.py:214 | |
193 | 193 | msgid "My Subjects" |
194 | 194 | msgstr "Meus assuntos" |
195 | 195 | |
... | ... | @@ -242,12 +242,12 @@ msgid " Any subjects or Resources were not found on the search for " |
242 | 242 | msgstr " Nenhum assunto ou recursos foram encontrados na busca por " |
243 | 243 | |
244 | 244 | #: subjects/templates/subjects/list_search.html:48 |
245 | -#: subjects/templates/subjects/list_search.html:51 subjects/views.py:677 | |
245 | +#: subjects/templates/subjects/list_search.html:51 subjects/views.py:676 | |
246 | 246 | msgid "Subjects" |
247 | 247 | msgstr "Assuntos" |
248 | 248 | |
249 | 249 | #: subjects/templates/subjects/list_search.html:49 |
250 | -#: subjects/templates/subjects/list_search.html:52 subjects/views.py:684 | |
250 | +#: subjects/templates/subjects/list_search.html:52 subjects/views.py:683 | |
251 | 251 | msgid "Resources" |
252 | 252 | msgstr "Recursos" |
253 | 253 | |
... | ... | @@ -362,52 +362,52 @@ msgstr "Ver Perfil" |
362 | 362 | msgid "Send Message" |
363 | 363 | msgstr "Enviar Mensagem" |
364 | 364 | |
365 | -#: subjects/views.py:85 | |
365 | +#: subjects/views.py:87 | |
366 | 366 | msgid "Home" |
367 | 367 | msgstr "Início" |
368 | 368 | |
369 | -#: subjects/views.py:184 | |
369 | +#: subjects/views.py:186 | |
370 | 370 | msgid "Page is not 'last', nor can it be converted to an int." |
371 | 371 | msgstr "" |
372 | 372 | "Página não é a 'última', e também não pode ser convertido para um inteiro" |
373 | 373 | |
374 | -#: subjects/views.py:190 | |
374 | +#: subjects/views.py:192 | |
375 | 375 | #, python-format |
376 | 376 | msgid "Invalid page (%(page_number)s): %(message)s" |
377 | 377 | msgstr "Página inválida (%(page_number)s): %(message)s" |
378 | 378 | |
379 | -#: subjects/views.py:219 | |
379 | +#: subjects/views.py:221 | |
380 | 380 | msgid "All Subjects" |
381 | 381 | msgstr "Todos os assuntos" |
382 | 382 | |
383 | -#: subjects/views.py:315 | |
383 | +#: subjects/views.py:317 | |
384 | 384 | msgid "Create Subject" |
385 | 385 | msgstr "Criar Assunto" |
386 | 386 | |
387 | -#: subjects/views.py:327 | |
387 | +#: subjects/views.py:329 | |
388 | 388 | msgid "Replicate Subject" |
389 | 389 | msgstr "Replicar Assunto" |
390 | 390 | |
391 | -#: subjects/views.py:369 | |
391 | +#: subjects/views.py:371 | |
392 | 392 | #, python-format |
393 | 393 | msgid "The Subject \"%s\" was registered on \"%s\" Category successfully!" |
394 | 394 | msgstr "Assunto \"%s\" foi registrado na categoria \"%s\" com sucesso!" |
395 | 395 | |
396 | -#: subjects/views.py:404 | |
396 | +#: subjects/views.py:406 | |
397 | 397 | msgid "Update Subject" |
398 | 398 | msgstr "Atualizar Assunto" |
399 | 399 | |
400 | -#: subjects/views.py:428 | |
400 | +#: subjects/views.py:430 | |
401 | 401 | #, python-format |
402 | 402 | msgid "The Subject \"%s\" was updated on \"%s\" Category successfully!" |
403 | 403 | msgstr "Assunto \"%s\" foi atualizado na categoria \"%s\" com sucesso!" |
404 | 404 | |
405 | -#: subjects/views.py:469 subjects/views.py:513 | |
405 | +#: subjects/views.py:471 subjects/views.py:515 | |
406 | 406 | #, python-format |
407 | 407 | msgid "Subject \"%s\" removed successfully!" |
408 | 408 | msgstr "Assunto \"%s\" removido com sucesso!" |
409 | 409 | |
410 | -#: subjects/views.py:477 subjects/views.py:481 | |
410 | +#: subjects/views.py:479 subjects/views.py:483 | |
411 | 411 | msgid "" |
412 | 412 | "Subject can't be removed. The subject still possess students and learning " |
413 | 413 | "objects associated" |
... | ... | @@ -415,24 +415,24 @@ msgstr "" |
415 | 415 | "Assunto não pode ser removido. Ele ainda possui alunos e objetos de " |
416 | 416 | "aprendizado associados" |
417 | 417 | |
418 | -#: subjects/views.py:603 | |
418 | +#: subjects/views.py:602 | |
419 | 419 | msgid "Subscription date is due!" |
420 | 420 | msgstr "O período de inscrição está encerrado!" |
421 | 421 | |
422 | -#: subjects/views.py:616 | |
422 | +#: subjects/views.py:615 | |
423 | 423 | msgid "Subscription was successfull!" |
424 | 424 | msgstr "Inscrição feita com sucesso!" |
425 | 425 | |
426 | -#: subjects/views.py:749 | |
426 | +#: subjects/views.py:748 | |
427 | 427 | #, python-format |
428 | 428 | msgid "%s - Backup" |
429 | 429 | msgstr "%s - Backup" |
430 | 430 | |
431 | -#: subjects/views.py:885 | |
431 | +#: subjects/views.py:907 | |
432 | 432 | #, python-format |
433 | 433 | msgid "%s - Restore" |
434 | 434 | msgstr "%s - Restaurar" |
435 | 435 | |
436 | -#: subjects/views.py:951 | |
436 | +#: subjects/views.py:981 | |
437 | 437 | msgid "Backup restored successfully!" |
438 | 438 | msgstr "Backup restaurado com sucesso!" | ... | ... |
subjects/serializers.py
... | ... | @@ -27,4 +27,4 @@ class SubjectSerializer(serializers.ModelSerializer): |
27 | 27 | |
28 | 28 | class Meta: |
29 | 29 | model = Subject |
30 | - fields = ["name", "slug", "visible"] | |
31 | 30 | \ No newline at end of file |
31 | + fields = ["name", "slug", "visible", "description_brief", "description"] | |
32 | 32 | \ No newline at end of file | ... | ... |
subjects/templates/subjects/_form.html
... | ... | @@ -11,7 +11,7 @@ |
11 | 11 | <div class="col-md-12"> |
12 | 12 | <a data-parent="#coordinators_accordion" data-toggle="collapse" href="#students"> |
13 | 13 | <h4 class="panel-title"> |
14 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ field.auto_id }}">{{ field.label }}</label> | |
14 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ field.auto_id }}">{% trans 'Students' %}</label> | |
15 | 15 | </h4> |
16 | 16 | </a> |
17 | 17 | </div> |
... | ... | @@ -31,7 +31,7 @@ |
31 | 31 | <div class="col-md-12"> |
32 | 32 | <a data-parent="#professors_accordion" data-toggle="collapse" href="#professors"> |
33 | 33 | <h4 class="panel-title"> |
34 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ field.auto_id }}">{{ field.label }}</label> | |
34 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ field.auto_id }}">{% trans 'Professor' %}</label> | |
35 | 35 | </h4> |
36 | 36 | </a> |
37 | 37 | </div> | ... | ... |
subjects/templates/subjects/restore.html
... | ... | @@ -72,10 +72,10 @@ |
72 | 72 | {% csrf_token %} |
73 | 73 | |
74 | 74 | <div class="form-group is-fileinput"> |
75 | - <input type="file" id="zip_file" name="zip_file" class="form-control" accept=".zip" /> | |
75 | + <input type="file" id="zip_file" name="zip_file" class="form-control" accept=".zip" data-mimetypes="['application/zip', 'application/octet-stream']" required /> | |
76 | 76 | |
77 | 77 | <div class="input-group common-file-input"> |
78 | - <input type="text" readonly="" class="form-control" placeholder="{% trans 'Choose your file...' %}"> | |
78 | + <input type="text" readonly="" class="form-control" placeholder="{% trans 'Choose your file...' %}" required> | |
79 | 79 | <span class="input-group-btn input-group-sm"> |
80 | 80 | <button type="button" class="btn btn-fab btn-fab-mini"> |
81 | 81 | <i class="material-icons">attach_file</i> |
... | ... | @@ -88,8 +88,18 @@ |
88 | 88 | </div> |
89 | 89 | </div> |
90 | 90 | |
91 | + <div class="col-lg-12 col-md-12 col-sm-12 alert alert-danger alert-dismissible client-file-errors" style="display:none" role="alert"> | |
92 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
93 | + <span aria-hidden="true">×</span> | |
94 | + </button> | |
95 | + <ul> | |
96 | + <li class="format">{% trans 'File not supported.' %}</li> | |
97 | + </ul> | |
98 | + </div> | |
99 | + | |
100 | + | |
91 | 101 | <div class="row text-center"> |
92 | - <input type="submit" value="{% trans 'Restore' %}" class="btn btn-success btn-raised" /> | |
102 | + <input type="submit" value="{% trans 'Restore' %}" disabled class="btn btn-success btn-raised" /> | |
93 | 103 | </div> |
94 | 104 | </form> |
95 | 105 | </div> |
... | ... | @@ -127,10 +137,23 @@ |
127 | 137 | // file selection |
128 | 138 | function FileSelectHandler(e) { |
129 | 139 | var files = e.target.files || e.dataTransfer.files, |
130 | - parent = $(e.target.offsetParent); | |
140 | + parent = $(e.target.offsetParent), | |
141 | + mimeTypes = $(e.target).data('mimetypes'), | |
142 | + submit_btn = $(e.target).closest("form").find("input[type='submit']"); | |
143 | + | |
144 | + $(".client-file-errors").hide(); | |
145 | + $(submit_btn).prop('disable', false); | |
146 | + $(submit_btn).prop('disabled', false); | |
131 | 147 | |
132 | 148 | // process all File objects |
133 | 149 | for (var i = 0, f; f = files[i]; i++) { |
150 | + if (!mimeTypes.includes(f.type)) { | |
151 | + $(submit_btn).prop('disable', true); | |
152 | + $(submit_btn).prop('disabled', true); | |
153 | + | |
154 | + $(".client-file-errors").show(); | |
155 | + } | |
156 | + | |
134 | 157 | parent.find('.filedrag').html(f.name); |
135 | 158 | } |
136 | 159 | } | ... | ... |
subjects/views.py
... | ... | @@ -43,6 +43,8 @@ from rest_framework.renderers import JSONRenderer |
43 | 43 | from rest_framework.parsers import JSONParser |
44 | 44 | |
45 | 45 | from users.serializers import UserBackupSerializer |
46 | +from bulletin.serializers import SimpleBulletinSerializer, CompleteBulletinSerializer | |
47 | +from bulletin.models import Bulletin | |
46 | 48 | from file_link.serializers import SimpleFileLinkSerializer, CompleteFileLinkSerializer |
47 | 49 | from file_link.models import FileLink |
48 | 50 | from goals.serializers import SimpleGoalSerializer, CompleteGoalSerializer |
... | ... | @@ -284,14 +286,14 @@ class SubjectCreateView(LoginRequiredMixin, LogMixin, CreateView): |
284 | 286 | initial = super(SubjectCreateView, self).get_initial() |
285 | 287 | |
286 | 288 | if self.kwargs.get('slug'): #when the user creates a subject |
287 | - initial['category'] = Category.objects.all().filter(slug=self.kwargs['slug']) | |
289 | + initial['category'] = Category.objects.filter(slug=self.kwargs['slug']) | |
288 | 290 | # print (initial) |
289 | 291 | # initial['professor'] = User.objects.all() |
290 | 292 | |
291 | 293 | if self.kwargs.get('subject_slug'): #when the user replicate a subject |
292 | 294 | subject = get_object_or_404(Subject, slug = self.kwargs['subject_slug']) |
293 | 295 | initial = initial.copy() |
294 | - initial['category'] = subject.category | |
296 | + initial['category'] = Category.objects.filter(slug = subject.category.slug) | |
295 | 297 | initial['description'] = subject.description |
296 | 298 | initial['name'] = subject.name |
297 | 299 | initial['visible'] = subject.visible |
... | ... | @@ -547,9 +549,8 @@ class SubjectDetailView(LoginRequiredMixin, LogMixin, DetailView): |
547 | 549 | expire_time = settings.SESSION_SECURITY_EXPIRE_AFTER |
548 | 550 | |
549 | 551 | context['participants'] = User.objects.filter( |
550 | - Q(is_staff = True) | Q(subject_student__slug = sub) | | |
551 | - Q(professors__slug = sub) | | |
552 | - Q(coordinators__subject_category__slug = sub) | |
552 | + Q(subject_student__slug = sub) | | |
553 | + Q(professors__slug = sub) | |
553 | 554 | ).extra(select = {'status': status_query}, select_params=(expire_time, expire_time,),).distinct().order_by('status', 'social_name','username').exclude(email = self.request.user.email) |
554 | 555 | |
555 | 556 | resources = self.request.session.get('resources', None) |
... | ... | @@ -597,8 +598,6 @@ class SubjectSubscribeView(LoginRequiredMixin, LogMixin, TemplateView): |
597 | 598 | def post(self, request, *args, **kwargs): |
598 | 599 | subject = get_object_or_404(Subject, slug= kwargs.get('slug')) |
599 | 600 | |
600 | - print ("Deu Certo ", subject) | |
601 | - | |
602 | 601 | if subject.subscribe_end <= datetime.datetime.today().date(): |
603 | 602 | messages.error(self.request, _('Subscription date is due!')) |
604 | 603 | else: |
... | ... | @@ -763,6 +762,7 @@ def realize_backup(request, subject): |
763 | 762 | |
764 | 763 | zf = zipfile.ZipFile(s, "w", compression = zipfile.ZIP_DEFLATED) |
765 | 764 | |
765 | + bulletins = Bulletin.objects.filter(id__in = resources_ids) | |
766 | 766 | webpages = Webpage.objects.filter(id__in = resources_ids) |
767 | 767 | ytvideos = YTVideo.objects.filter(id__in = resources_ids) |
768 | 768 | filelinks = FileLink.objects.filter(id__in = resources_ids) |
... | ... | @@ -790,6 +790,23 @@ def realize_backup(request, subject): |
790 | 790 | # Add file, at correct path |
791 | 791 | zf.write(pdffile.file.path, zip_path) |
792 | 792 | |
793 | + for bulletin in bulletins: | |
794 | + if bool(bulletin.file_content): | |
795 | + if os.path.exists(bulletin.file_content.path): | |
796 | + fdir, fname = os.path.split(bulletin.file_content.path) | |
797 | + zip_path = os.path.join(os.path.join("bulletin", "goals"), fname) | |
798 | + | |
799 | + # Add file, at correct path | |
800 | + zf.write(bulletin.file_content.path, zip_path) | |
801 | + | |
802 | + if bool(bulletin.indicators): | |
803 | + if os.path.exists(bulletin.indicators.path): | |
804 | + fdir, fname = os.path.split(bulletin.indicators.path) | |
805 | + zip_path = os.path.join(os.path.join("bulletin", "indicators"), fname) | |
806 | + | |
807 | + # Add file, at correct path | |
808 | + zf.write(bulletin.indicators.path, zip_path) | |
809 | + | |
793 | 810 | file = open("backup.json", "w") |
794 | 811 | |
795 | 812 | data_list = [] |
... | ... | @@ -805,6 +822,7 @@ def realize_backup(request, subject): |
805 | 822 | |
806 | 823 | zf.write(user.image.path, zip_path) |
807 | 824 | |
825 | + serializer_b = CompleteBulletinSerializer(bulletins, many = True) | |
808 | 826 | serializer_w = CompleteWebpageSerializer(webpages, many = True) |
809 | 827 | serializer_y = CompleteYTVideoSerializer(ytvideos, many = True) |
810 | 828 | serializer_f = CompleteFileLinkSerializer(filelinks, many = True) |
... | ... | @@ -813,6 +831,7 @@ def realize_backup(request, subject): |
813 | 831 | serializer_g = CompleteGoalSerializer(goals, many = True) |
814 | 832 | serializer_c = CompleteWebconferenceSerializer(webconferences, many = True) |
815 | 833 | else: |
834 | + serializer_b = SimpleBulletinSerializer(bulletins, many = True) | |
816 | 835 | serializer_w = SimpleWebpageSerializer(webpages, many = True) |
817 | 836 | serializer_y = SimpleYTVideoSerializer(ytvideos, many = True) |
818 | 837 | serializer_f = SimpleFileLinkSerializer(filelinks, many = True) |
... | ... | @@ -821,6 +840,9 @@ def realize_backup(request, subject): |
821 | 840 | serializer_g = SimpleGoalSerializer(goals, many = True) |
822 | 841 | serializer_c = SimpleWebconferenceSerializer(webconferences, many = True) |
823 | 842 | |
843 | + if len(serializer_b.data) > 0: | |
844 | + data_list.append(serializer_b.data) | |
845 | + | |
824 | 846 | if len(serializer_w.data) > 0: |
825 | 847 | data_list.append(serializer_w.data) |
826 | 848 | |
... | ... | @@ -914,6 +936,14 @@ def realize_restore(request, subject): |
914 | 936 | serial = CompleteWebpageSerializer(data = line, many = True, context = {'subject': subject, 'files': file}) |
915 | 937 | else: |
916 | 938 | serial = SimpleWebpageSerializer(data = line, many = True, context = {'subject': subject}) |
939 | + elif line[0]["_my_subclass"] == "bulletin": | |
940 | + if "students" in line[0]: | |
941 | + print(file.namelist()) | |
942 | + print(line[0]["file_content"]) | |
943 | + print(line[0]["file_content"] in file.namelist()) | |
944 | + serial = CompleteBulletinSerializer(data = line, many = True, context = {'subject': subject, 'files': file}) | |
945 | + else: | |
946 | + serial = SimpleBulletinSerializer(data = line, many = True, context = {'subject': subject, 'files': file}) | |
917 | 947 | elif line[0]["_my_subclass"] == "filelink": |
918 | 948 | if "students" in line[0]: |
919 | 949 | serial = CompleteFileLinkSerializer(data = line, many = True, context = {'subject': subject, 'files': file}) | ... | ... |
themes/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | @@ -18,11 +18,12 @@ msgstr "" |
18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
20 | 20 | |
21 | -#: themes/forms.py:15 themes/forms.py:27 themes/forms.py:39 | |
21 | +#: themes/forms.py:17 themes/forms.py:29 themes/forms.py:41 | |
22 | +#: themes/templates/themes/basic_update.html:94 | |
22 | 23 | msgid "The image is too large. It should have less than 2MB." |
23 | 24 | msgstr "A imagem é muito grande. Ela deve ter menos de 2MB." |
24 | 25 | |
25 | -#: themes/models.py:11 | |
26 | +#: themes/models.py:11 themes/templates/themes/basic_update.html:95 | |
26 | 27 | msgid "File not supported." |
27 | 28 | msgstr "Arquivo não suportado." |
28 | 29 | |
... | ... | @@ -96,12 +97,12 @@ msgstr "Dimensões recomendads" |
96 | 97 | msgid "It is recommended to be a white image" |
97 | 98 | msgstr "É recomendável ser uma imagem branca" |
98 | 99 | |
99 | -#: themes/templates/themes/basic_update.html:89 | |
100 | +#: themes/templates/themes/basic_update.html:103 | |
100 | 101 | #: themes/templates/themes/css_update.html:75 |
101 | 102 | msgid "Save" |
102 | 103 | msgstr "Salvar" |
103 | 104 | |
104 | -#: themes/templates/themes/basic_update.html:94 | |
105 | +#: themes/templates/themes/basic_update.html:108 | |
105 | 106 | #: themes/templates/themes/css_update.html:17 |
106 | 107 | #: themes/templates/themes/index.html:18 themes/views.py:78 |
107 | 108 | msgid "CSS Selector" | ... | ... |
topics/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
users/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | @@ -23,6 +23,7 @@ msgid "You must insert an email address" |
23 | 23 | msgstr "Você deve inserir um endereço de email" |
24 | 24 | |
25 | 25 | #: users/forms.py:43 users/templates/users/_form.html:94 |
26 | +#: users/templates/users/register.html:107 | |
26 | 27 | msgid "The image is too large. It should have less than 2MB." |
27 | 28 | msgstr "A imagem é muito grande. Ela deve conter menos de 2MB." |
28 | 29 | |
... | ... | @@ -88,6 +89,7 @@ msgid "You must insert a valid email address" |
88 | 89 | msgstr "Você deve inserir um endereço de email válido" |
89 | 90 | |
90 | 91 | #: users/models.py:18 users/templates/users/_form.html:95 |
92 | +#: users/templates/users/register.html:108 | |
91 | 93 | msgid "File not supported." |
92 | 94 | msgstr "Arquivo não suportado." |
93 | 95 | |
... | ... | @@ -173,15 +175,15 @@ msgstr "Sim" |
173 | 175 | msgid "Is not an admin" |
174 | 176 | msgstr "Não é administrador" |
175 | 177 | |
176 | -#: users/templates/users/_form.html:18 users/templates/users/register.html:53 | |
178 | +#: users/templates/users/_form.html:18 users/templates/users/register.html:56 | |
177 | 179 | msgid "Choose your photo..." |
178 | 180 | msgstr "Escolha sua foto..." |
179 | 181 | |
180 | -#: users/templates/users/_form.html:32 | |
182 | +#: users/templates/users/_form.html:32 users/templates/users/register.html:70 | |
181 | 183 | msgid "Click or drop the file here" |
182 | 184 | msgstr "" |
183 | 185 | |
184 | -#: users/templates/users/_form.html:34 | |
186 | +#: users/templates/users/_form.html:34 users/templates/users/register.html:72 | |
185 | 187 | msgid "The photo could not exceed 2MB." |
186 | 188 | msgstr "A imagem não pode exceder o tamanho de 2MB." |
187 | 189 | |
... | ... | @@ -231,7 +233,7 @@ msgstr "Recuperar" |
231 | 233 | |
232 | 234 | #: users/templates/users/forgot_password.html:75 |
233 | 235 | #: users/templates/users/new_password.html:80 |
234 | -#: users/templates/users/register.html:93 | |
236 | +#: users/templates/users/register.html:121 | |
235 | 237 | msgid "Back" |
236 | 238 | msgstr "Voltar" |
237 | 239 | |
... | ... | @@ -308,7 +310,7 @@ msgstr "Estudante em" |
308 | 310 | msgid "User Register" |
309 | 311 | msgstr "Cadastro de Usuário" |
310 | 312 | |
311 | -#: users/templates/users/register.html:90 | |
313 | +#: users/templates/users/register.html:118 | |
312 | 314 | msgid "Register" |
313 | 315 | msgstr "Cadastrar" |
314 | 316 | ... | ... |
users/serializers.py
... | ... | @@ -35,7 +35,7 @@ class UserBackupSerializer(serializers.ModelSerializer): |
35 | 35 | |
36 | 36 | path = files.extract(data["image"], dst_path) |
37 | 37 | |
38 | - new_name = "users/img_" + str(time.time()) + os.path.splitext(data["image"])[1] | |
38 | + new_name = os.path.join("users","img_" + str(time.time()) + os.path.splitext(data["image"])[1]) | |
39 | 39 | |
40 | 40 | os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_name)) |
41 | 41 | ... | ... |
webconference/forms.py
... | ... | @@ -6,6 +6,7 @@ from django.forms.models import inlineformset_factory |
6 | 6 | import datetime |
7 | 7 | |
8 | 8 | from subjects.models import Tag |
9 | +from subjects.forms import ParticipantsMultipleChoiceField | |
9 | 10 | |
10 | 11 | from .models import Webconference, ConferenceSettings |
11 | 12 | |
... | ... | @@ -15,6 +16,7 @@ from pendencies.models import Pendencies |
15 | 16 | class WebconferenceForm(forms.ModelForm): |
16 | 17 | subject = None |
17 | 18 | control_subject = forms.CharField(widget = forms.HiddenInput()) |
19 | + students = ParticipantsMultipleChoiceField(queryset = None, required = False) | |
18 | 20 | |
19 | 21 | def __init__(self, *args, **kwargs): |
20 | 22 | super(WebconferenceForm, self).__init__(*args, **kwargs) | ... | ... |
webconference/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | @@ -18,35 +18,35 @@ msgstr "" |
18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
20 | 20 | |
21 | -#: webconference/forms.py:33 | |
21 | +#: webconference/forms.py:35 | |
22 | 22 | msgid "Tags" |
23 | 23 | msgstr "Tags" |
24 | 24 | |
25 | -#: webconference/forms.py:39 | |
25 | +#: webconference/forms.py:41 | |
26 | 26 | msgid "Web Conference Title" |
27 | 27 | msgstr "Titulo da Web Conferência" |
28 | 28 | |
29 | -#: webconference/forms.py:40 webconference/models.py:8 | |
29 | +#: webconference/forms.py:42 webconference/models.py:8 | |
30 | 30 | msgid "Presentation" |
31 | 31 | msgstr "Apresentação" |
32 | 32 | |
33 | -#: webconference/forms.py:61 | |
33 | +#: webconference/forms.py:63 | |
34 | 34 | msgid "This subject already has a web conference with this name" |
35 | 35 | msgstr "Este assunto já tem uma web conferência com este nome" |
36 | 36 | |
37 | -#: webconference/forms.py:71 | |
37 | +#: webconference/forms.py:73 | |
38 | 38 | msgid "This date must be today or after" |
39 | 39 | msgstr "Esta data deve ser hoje ou depois" |
40 | 40 | |
41 | -#: webconference/forms.py:81 | |
41 | +#: webconference/forms.py:83 | |
42 | 42 | msgid "This date must be equal start date/hour or after" |
43 | 43 | msgstr "Esta data deve ser igual ou posterior a data/hora de inicio" |
44 | 44 | |
45 | -#: webconference/forms.py:128 webconference/models.py:35 | |
45 | +#: webconference/forms.py:130 webconference/models.py:35 | |
46 | 46 | msgid "Domain" |
47 | 47 | msgstr "Dominio" |
48 | 48 | |
49 | -#: webconference/forms.py:132 | |
49 | +#: webconference/forms.py:134 | |
50 | 50 | msgid "The domain of the jitsi server, e.g. meet.jit.si" |
51 | 51 | msgstr "O dominio do servidor do jitsi, ex: meet.jit.si" |
52 | 52 | ... | ... |
webconference/serializers.py
... | ... | @@ -51,7 +51,7 @@ class SimpleWebconferenceSerializer(serializers.ModelSerializer): |
51 | 51 | if topic_exist.exists(): |
52 | 52 | topic = topic_exist[0] |
53 | 53 | else: |
54 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
54 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
55 | 55 | |
56 | 56 | data["topic"] = topic |
57 | 57 | else: |
... | ... | @@ -136,7 +136,7 @@ class CompleteWebconferenceSerializer(serializers.ModelSerializer): |
136 | 136 | if topic_exist.exists(): |
137 | 137 | topic = topic_exist[0] |
138 | 138 | else: |
139 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
139 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
140 | 140 | |
141 | 141 | data["topic"] = topic |
142 | 142 | else: | ... | ... |
webconference/templates/webconference/_form.html
... | ... | @@ -250,7 +250,7 @@ |
250 | 250 | <div class="col-md-12"> |
251 | 251 | <a data-parent="#professors_accordion" data-toggle="collapse" href="#students"> |
252 | 252 | <h4 class="panel-title"> |
253 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{{ form.students.label }}</label> | |
253 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{% trans 'Students' %}</label> | |
254 | 254 | </h4> |
255 | 255 | </a> |
256 | 256 | </div> | ... | ... |
webpage/forms.py
... | ... | @@ -4,6 +4,7 @@ from django.utils.translation import ugettext_lazy as _ |
4 | 4 | from django.utils.html import strip_tags |
5 | 5 | |
6 | 6 | from subjects.models import Tag |
7 | +from subjects.forms import ParticipantsMultipleChoiceField | |
7 | 8 | |
8 | 9 | from .models import Webpage |
9 | 10 | |
... | ... | @@ -11,6 +12,7 @@ from resubmit.widgets import ResubmitFileWidget |
11 | 12 | |
12 | 13 | class WebpageForm(forms.ModelForm): |
13 | 14 | subject = None |
15 | + students = ParticipantsMultipleChoiceField(queryset = None, required = False) | |
14 | 16 | |
15 | 17 | def __init__(self, *args, **kwargs): |
16 | 18 | super(WebpageForm, self).__init__(*args, **kwargs) | ... | ... |
webpage/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | @@ -18,31 +18,31 @@ msgstr "" |
18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
20 | 20 | |
21 | -#: webpage/forms.py:27 | |
21 | +#: webpage/forms.py:29 | |
22 | 22 | msgid "Tags" |
23 | 23 | msgstr "Tags" |
24 | 24 | |
25 | -#: webpage/forms.py:33 | |
25 | +#: webpage/forms.py:35 | |
26 | 26 | msgid "Webpage name" |
27 | 27 | msgstr "Nome da Página Web" |
28 | 28 | |
29 | -#: webpage/forms.py:34 | |
29 | +#: webpage/forms.py:36 | |
30 | 30 | msgid "Webpage content" |
31 | 31 | msgstr "Conteúdo da Página Web" |
32 | 32 | |
33 | -#: webpage/forms.py:55 | |
33 | +#: webpage/forms.py:57 | |
34 | 34 | msgid "This subject already has a webpage with this name" |
35 | 35 | msgstr "Esse assunto já possui uma Página Web com esse nome" |
36 | 36 | |
37 | -#: webpage/forms.py:66 webpage/forms.py:112 | |
37 | +#: webpage/forms.py:68 webpage/forms.py:114 | |
38 | 38 | msgid "This field is required." |
39 | 39 | msgstr "Esse campo é obrigatório." |
40 | 40 | |
41 | -#: webpage/forms.py:104 | |
41 | +#: webpage/forms.py:106 | |
42 | 42 | msgid "Message" |
43 | 43 | msgstr "Mensagem" |
44 | 44 | |
45 | -#: webpage/forms.py:124 | |
45 | +#: webpage/forms.py:126 | |
46 | 46 | msgid "The image is too large. It should have less than 5MB." |
47 | 47 | msgstr "A imagem é muito grande. Deve ser menor do que 5MB" |
48 | 48 | ... | ... |
webpage/serializers.py
... | ... | @@ -51,7 +51,7 @@ class SimpleWebpageSerializer(serializers.ModelSerializer): |
51 | 51 | if topic_exist.exists(): |
52 | 52 | topic = topic_exist[0] |
53 | 53 | else: |
54 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
54 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
55 | 55 | |
56 | 56 | data["topic"] = topic |
57 | 57 | else: |
... | ... | @@ -134,7 +134,7 @@ class CompleteWebpageSerializer(serializers.ModelSerializer): |
134 | 134 | if topic_exist.exists(): |
135 | 135 | topic = topic_exist[0] |
136 | 136 | else: |
137 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
137 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
138 | 138 | |
139 | 139 | data["topic"] = topic |
140 | 140 | else: | ... | ... |
webpage/templates/webpages/_form.html
... | ... | @@ -203,7 +203,7 @@ |
203 | 203 | <div class="col-md-12"> |
204 | 204 | <a data-parent="#professors_accordion" data-toggle="collapse" href="#students"> |
205 | 205 | <h4 class="panel-title"> |
206 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{{ form.students.label }}</label> | |
206 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{% trans 'Students' %}</label> | |
207 | 207 | </h4> |
208 | 208 | </a> |
209 | 209 | </div> | ... | ... |
youtube_video/forms.py
... | ... | @@ -8,6 +8,7 @@ import requests |
8 | 8 | import re |
9 | 9 | |
10 | 10 | from subjects.models import Tag |
11 | +from subjects.forms import ParticipantsMultipleChoiceField | |
11 | 12 | |
12 | 13 | from pendencies.forms import PendenciesForm |
13 | 14 | from pendencies.models import Pendencies |
... | ... | @@ -18,6 +19,7 @@ from .models import YTVideo |
18 | 19 | class YTVideoForm(forms.ModelForm): |
19 | 20 | subject = None |
20 | 21 | control_subject = forms.CharField(widget = forms.HiddenInput()) |
22 | + students = ParticipantsMultipleChoiceField(queryset = None, required = False) | |
21 | 23 | |
22 | 24 | def __init__(self, *args, **kwargs): |
23 | 25 | super(YTVideoForm, self).__init__(*args, **kwargs) | ... | ... |
youtube_video/locale/pt_BR/LC_MESSAGES/django.po
... | ... | @@ -8,7 +8,7 @@ msgid "" |
8 | 8 | msgstr "" |
9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
10 | 10 | "Report-Msgid-Bugs-To: \n" |
11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | @@ -18,19 +18,19 @@ msgstr "" |
18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
20 | 20 | |
21 | -#: youtube_video/forms.py:36 | |
21 | +#: youtube_video/forms.py:38 | |
22 | 22 | msgid "Tags" |
23 | 23 | msgstr "Tags" |
24 | 24 | |
25 | -#: youtube_video/forms.py:42 | |
25 | +#: youtube_video/forms.py:44 | |
26 | 26 | msgid "Video title" |
27 | 27 | msgstr "Título do Vídeo" |
28 | 28 | |
29 | -#: youtube_video/forms.py:62 | |
29 | +#: youtube_video/forms.py:64 | |
30 | 30 | msgid "This subject already has a resource with this name" |
31 | 31 | msgstr "Esse assunto já possui um recurso com esse nome" |
32 | 32 | |
33 | -#: youtube_video/forms.py:71 | |
33 | +#: youtube_video/forms.py:73 | |
34 | 34 | msgid "Invalid URL. It should be an YouTube link." |
35 | 35 | msgstr "URL inválida. Ela deve ser uma URL de um vídeo do YouTube." |
36 | 36 | ... | ... |
youtube_video/serializers.py
... | ... | @@ -51,7 +51,7 @@ class SimpleYTVideoSerializer(serializers.ModelSerializer): |
51 | 51 | if topic_exist.exists(): |
52 | 52 | topic = topic_exist[0] |
53 | 53 | else: |
54 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
54 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
55 | 55 | |
56 | 56 | data["topic"] = topic |
57 | 57 | else: |
... | ... | @@ -135,7 +135,7 @@ class CompleteYTVideoSerializer(serializers.ModelSerializer): |
135 | 135 | if topic_exist.exists(): |
136 | 136 | topic = topic_exist[0] |
137 | 137 | else: |
138 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
138 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
139 | 139 | |
140 | 140 | data["topic"] = topic |
141 | 141 | else: | ... | ... |
youtube_video/templates/youtube/_form.html
... | ... | @@ -209,7 +209,7 @@ |
209 | 209 | <div class="col-md-12"> |
210 | 210 | <a data-parent="#professors_accordion" data-toggle="collapse" href="#students"> |
211 | 211 | <h4 class="panel-title"> |
212 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{{ form.students.label }}</label> | |
212 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{% trans 'Students' %}</label> | |
213 | 213 | </h4> |
214 | 214 | </a> |
215 | 215 | </div> | ... | ... |