Commit 2ace89260d55f20c2b4e7785bd6f20f63b742c51

Authored by Jose Guilherme
2 parents 4aedbe76 30e80411

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
... ... @@ -215,7 +215,7 @@ CRON_CLASSES = [
215 215 ]
216 216  
217 217 CRONJOBS = [
218   - ('0 0 * * *', 'notifications.cron.notification_cron'),
  218 + ('0 5 * * *', 'notifications.cron.notification_cron'),
219 219 ('0 0 * * *', 'goals.cron.setgoals_cron')
220 220 ]
221 221  
... ...
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 = &quot;&quot;) {
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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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 ""
... ...
api/utils.py 0 → 100644
... ... @@ -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&nbsp;</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 &quot;&quot;
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 &quot;Nome do boletim&quot;
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 &quot;Metas&quot;
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 &quot;Click to download a xls file with the data of the goals&quot;
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 &quot;Click or drop the .xls file with the goals data&quot;
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 &quot;The picture could not exceed 5MB.&quot;
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 &quot;Enviar&quot;
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 &quot;&quot;
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 &quot;&quot;
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'))
... ...
bulletin/serializers.py 0 → 100644
... ... @@ -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
... ...
bulletin/sheets/xls/future-5.xls 0 → 100644
No preview for this file type
bulletin/sheets/xls/olhos.xls 0 → 100644
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">&times;</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">&times;</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">&times;</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">&times;</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">&times;</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">&times;</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">&times;</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">&times;</span></button>
  249 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</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 &quot;&quot;
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 &quot;&quot;
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 &quot;Inativo&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;Clique ou solte o arquivo aqui&quot;
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 &quot;Enviar&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;Submeteu&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;Pedir ajuda&quot;
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 &quot;A imagem é muito grande. Ela deve possuir 5MB ou menos.&quot;
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 &quot;Resource&quot;
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 &quot;Clique ou solte a imagem aqui&quot;
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 &quot;Cancelar&quot;
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">&times;</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">&times;</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">&times;</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">&times;</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">&times;</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">&times;</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("&nbsp;");
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 &quot;&quot;
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 &quot;&quot;
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 &quot;A imagem é muito grande. Ela deve ter menos que 5MB.&quot;
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 &quot;Data de criação&quot;
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 &quot;Search by title, author or date&quot;
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 &quot;Nenhuma notícia encontrada&quot;
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 &quot;Imprimir Notícia&quot;
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 &quot;Notícia \&quot;%s\&quot; removida com sucesso&quot;
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">&times;</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">&times;</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">&times;</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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;Arquivo&quot;
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 &quot;Editar: &quot;
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 &quot;Visualizar&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;DELETE&quot;
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 &quot; Any subjects or Resources were not found on the search for &quot;
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 &quot;Ver Perfil&quot;
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 &quot;&quot;
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">&times;</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 &quot;&quot;
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 &quot;&quot;
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 &quot;Dimensões recomendads&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;You must insert an email address&quot;
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 &quot;You must insert a valid email address&quot;
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 &quot;Sim&quot;
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 &quot;Recuperar&quot;
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 &quot;Estudante em&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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 &quot;&quot;
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>
... ...