Commit 2ace89260d55f20c2b4e7785bd6f20f63b742c51
Exists in
master
and in
2 other branches
Merge branch 'refactoring' of https://github.com/amadeusproject/amadeuslms into refactoring
Showing
84 changed files
with
1417 additions
and
494 deletions
Show diff stats
amadeus/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
amadeus/settings.py
amadeus/static/js/crop_news.js
| 1 | 1 | $(function () { |
| 2 | - | |
| 3 | 2 | /* Script para abrir o modal com a imagem selecionada */ |
| 4 | 3 | $("#id_image").change(function () { |
| 4 | + var max_size = 5*1024*1024; | |
| 5 | + var submit_btn = $("#news-form").find("input[type='submit']"); | |
| 6 | + var mimeTypes = $(this).data('mimetypes'); | |
| 7 | + var errors = 0; | |
| 8 | + | |
| 9 | + $(".client-file-errors").hide(); | |
| 10 | + $(".size").hide(); | |
| 11 | + $(".format").hide(); | |
| 12 | + $(submit_btn).prop('disable', false); | |
| 13 | + $(submit_btn).prop('disabled', false); | |
| 14 | + | |
| 5 | 15 | if (this.files && this.files[0]) { |
| 6 | - var reader = new FileReader(); | |
| 7 | - reader.onload = function (e) { | |
| 8 | - $("#image").attr("src", e.target.result); | |
| 9 | - $("#modalCrop").modal("show"); | |
| 16 | + if (this.files[0].size > max_size) { | |
| 17 | + $(submit_btn).prop('disable', true); | |
| 18 | + $(submit_btn).prop('disabled', true); | |
| 19 | + | |
| 20 | + $(".client-file-errors").show(); | |
| 21 | + $(".size").show(); | |
| 22 | + | |
| 23 | + errors++; | |
| 24 | + } | |
| 25 | + | |
| 26 | + if (!mimeTypes.includes(this.files[0].type)) { | |
| 27 | + $(submit_btn).prop('disable', true); | |
| 28 | + $(submit_btn).prop('disabled', true); | |
| 29 | + | |
| 30 | + $(".client-file-errors").show(); | |
| 31 | + $(".format").show(); | |
| 32 | + | |
| 33 | + errors++; | |
| 34 | + } | |
| 35 | + | |
| 36 | + if (errors == 0) { | |
| 37 | + var reader = new FileReader(); | |
| 38 | + reader.onload = function (e) { | |
| 39 | + $("#image").attr("src", e.target.result); | |
| 40 | + $("#modalCrop").modal("show"); | |
| 41 | + } | |
| 42 | + reader.readAsDataURL(this.files[0]); | |
| 10 | 43 | } |
| 11 | - reader.readAsDataURL(this.files[0]); | |
| 12 | 44 | } |
| 13 | 45 | }); |
| 14 | 46 | |
| ... | ... | @@ -19,7 +51,7 @@ $(function () { |
| 19 | 51 | $("#modalCrop").on("shown.bs.modal", function () { |
| 20 | 52 | $image.cropper({ |
| 21 | 53 | viewMode: 1 , |
| 22 | - aspectRatio: 24/5, | |
| 54 | + aspectRatio: 3/1, | |
| 23 | 55 | minCropBoxWidth: 200, |
| 24 | 56 | minCropBoxHeight: 200, |
| 25 | 57 | dragMode: 'move', | ... | ... |
amadeus/static/js/mural.js
| ... | ... | @@ -91,7 +91,12 @@ function seeComplete(btn, post) { |
| 91 | 91 | function setPostFormSubmit(post = "") { |
| 92 | 92 | var frm = $('#post-form'); |
| 93 | 93 | |
| 94 | - frm.submit(function () { | |
| 94 | + frm.submit(function (e) { | |
| 95 | + var btn = frm.parent().parent().parent().find("button[form='post-form']") | |
| 96 | + | |
| 97 | + btn.prop('disable', true); | |
| 98 | + btn.prop('disabled', true); | |
| 99 | + | |
| 95 | 100 | var formData = new FormData($(this)[0]); |
| 96 | 101 | |
| 97 | 102 | $.ajax({ |
| ... | ... | @@ -250,6 +255,11 @@ function setCommentFormSubmit(post, comment = "") { |
| 250 | 255 | var frm = $('#comment-form'); |
| 251 | 256 | |
| 252 | 257 | frm.submit(function () { |
| 258 | + var btn = frm.parent().parent().parent().find("button[form='comment-form']") | |
| 259 | + | |
| 260 | + btn.prop('disable', true); | |
| 261 | + btn.prop('disabled', true); | |
| 262 | + | |
| 253 | 263 | var formData = new FormData($(this)[0]); |
| 254 | 264 | |
| 255 | 265 | $.ajax({ | ... | ... |
amadeus/static/js/resources.js
| ... | ... | @@ -135,16 +135,30 @@ function FileSelectHandler(e) { |
| 135 | 135 | parent = $(e.target.offsetParent), |
| 136 | 136 | max_size = parseInt($(e.target).data("max_size")) * 1024 * 1024, |
| 137 | 137 | submit_btn = $(e.target).closest("form").find("input[type='submit']"), |
| 138 | - mimeTypes = $(e.target).data('mimetypes'); | |
| 138 | + mimeTypes = $(e.target).data('mimetypes'), | |
| 139 | + file_id = parent.data('file_id'); | |
| 139 | 140 | |
| 140 | - $(".client-file-errors").hide(); | |
| 141 | - $(".size").hide(); | |
| 142 | - $(".format").hide(); | |
| 143 | - $(submit_btn).prop('disable', false); | |
| 144 | - $(submit_btn).prop('disabled', false); | |
| 141 | + if ($(e.target).closest("form").prop('id') == "bulletin") { | |
| 142 | + parent.removeClass('alert-file'); | |
| 143 | + | |
| 144 | + var alerts_open = $(e.target).closest("form").find(".alert-file").length; | |
| 145 | + | |
| 146 | + if (alerts_open == 0) { | |
| 147 | + $(submit_btn).prop('disable', false); | |
| 148 | + $(submit_btn).prop('disabled', false); | |
| 149 | + } | |
| 150 | + | |
| 151 | + $("." + file_id + "-file-errors").hide(); | |
| 152 | + $("." + file_id + "-file-errors .size").hide(); | |
| 153 | + $("." + file_id + "-file-errors .format").hide(); | |
| 154 | + } else { | |
| 155 | + $(".client-file-errors").hide(); | |
| 156 | + $(".size").hide(); | |
| 157 | + $(".format").hide(); | |
| 158 | + $(submit_btn).prop('disable', false); | |
| 159 | + $(submit_btn).prop('disabled', false); | |
| 160 | + } | |
| 145 | 161 | |
| 146 | - console.log($(e.target).data('mimetypes')); | |
| 147 | - console.log(mimeTypes); | |
| 148 | 162 | |
| 149 | 163 | // process all File objects |
| 150 | 164 | for (var i = 0, f; f = files[i]; i++) { |
| ... | ... | @@ -153,16 +167,30 @@ function FileSelectHandler(e) { |
| 153 | 167 | $(submit_btn).prop('disable', true); |
| 154 | 168 | $(submit_btn).prop('disabled', true); |
| 155 | 169 | |
| 156 | - $(".client-file-errors").show(); | |
| 157 | - $(".size").show(); | |
| 170 | + if ($(e.target).closest("form").prop('id') == "bulletin") { | |
| 171 | + $("." + file_id + "-file-errors").show(); | |
| 172 | + $("." + file_id + "-file-errors .size").show(); | |
| 173 | + | |
| 174 | + parent.addClass('alert-file'); | |
| 175 | + } else { | |
| 176 | + $(".client-file-errors").show(); | |
| 177 | + $(".size").show(); | |
| 178 | + } | |
| 158 | 179 | } |
| 159 | 180 | |
| 160 | 181 | if (!mimeTypes.includes(f.type)) { |
| 161 | 182 | $(submit_btn).prop('disable', true); |
| 162 | 183 | $(submit_btn).prop('disabled', true); |
| 163 | 184 | |
| 164 | - $(".client-file-errors").show(); | |
| 165 | - $(".format").show(); | |
| 185 | + if ($(e.target).closest("form").prop('id') == "bulletin") { | |
| 186 | + $("." + file_id + "-file-errors").show(); | |
| 187 | + $("." + file_id + "-file-errors .format").show(); | |
| 188 | + | |
| 189 | + parent.addClass('alert-file'); | |
| 190 | + } else { | |
| 191 | + $(".client-file-errors").show(); | |
| 192 | + $(".format").show(); | |
| 193 | + } | |
| 166 | 194 | } |
| 167 | 195 | |
| 168 | 196 | parent.find('.filedrag').html(f.name); | ... | ... |
analytics/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
api/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| ... | ... | @@ -18,23 +18,31 @@ msgstr "" |
| 18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
| 19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
| 20 | 20 | |
| 21 | -#: api/views.py:332 | |
| 21 | +#: api/utils.py:35 | |
| 22 | +msgid " sent a message" | |
| 23 | +msgstr "" | |
| 24 | + | |
| 25 | +#: api/utils.py:40 | |
| 26 | +msgid "[Photo]" | |
| 27 | +msgstr "" | |
| 28 | + | |
| 29 | +#: api/views.py:341 | |
| 22 | 30 | #, python-format |
| 23 | 31 | msgid "Last message in %s" |
| 24 | 32 | msgstr "" |
| 25 | 33 | |
| 26 | -#: api/views.py:349 | |
| 34 | +#: api/views.py:358 | |
| 27 | 35 | msgid "Message sent successfully!" |
| 28 | 36 | msgstr "" |
| 29 | 37 | |
| 30 | -#: api/views.py:353 | |
| 38 | +#: api/views.py:364 | |
| 31 | 39 | msgid "Error while sending message!" |
| 32 | 40 | msgstr "" |
| 33 | 41 | |
| 34 | -#: api/views.py:360 | |
| 42 | +#: api/views.py:371 | |
| 35 | 43 | msgid "No information received!" |
| 36 | 44 | msgstr "" |
| 37 | 45 | |
| 38 | -#: api/views.py:366 | |
| 46 | +#: api/views.py:377 | |
| 39 | 47 | msgid "Amadeus" |
| 40 | 48 | msgstr "" | ... | ... |
| ... | ... | @@ -0,0 +1,42 @@ |
| 1 | +import json | |
| 2 | +import textwrap | |
| 3 | +from django.utils.html import strip_tags | |
| 4 | +from django.utils.translation import ugettext as _ | |
| 5 | + | |
| 6 | +from fcm_django.models import FCMDevice | |
| 7 | +from fcm_django.fcm import fcm_send_message | |
| 8 | + | |
| 9 | +from chat.serializers import ChatSerializer | |
| 10 | + | |
| 11 | +def sendChatPushNotification(user, message): | |
| 12 | + device = FCMDevice.objects.filter(user = user, active = True).first() | |
| 13 | + | |
| 14 | + if not device is None: | |
| 15 | + serializer = ChatSerializer(message) | |
| 16 | + | |
| 17 | + json_r = json.dumps(serializer.data) | |
| 18 | + json_r = json.loads(json_r) | |
| 19 | + | |
| 20 | + info = {} | |
| 21 | + | |
| 22 | + info["data"] = {} | |
| 23 | + info["data"]["messages"] = [] | |
| 24 | + info["data"]["message_sent"] = json_r | |
| 25 | + | |
| 26 | + info["message"] = "" | |
| 27 | + info["type"] = "" | |
| 28 | + info["title"] = "" | |
| 29 | + info["success"] = True | |
| 30 | + info["number"] = 1 | |
| 31 | + info['extra'] = 0 | |
| 32 | + | |
| 33 | + response = json.dumps(info) | |
| 34 | + | |
| 35 | + title = str(message.user).join(_(" sent a message")) | |
| 36 | + | |
| 37 | + simple_notify = textwrap.shorten(strip_tags(message.text), width = 30, placeholder = "...") | |
| 38 | + | |
| 39 | + if message.image: | |
| 40 | + simple_notify += " ".join(_("[Photo]")) | |
| 41 | + | |
| 42 | + device.send_message(data = {"response": response, "title": title, "body": simple_notify, "user_from": message.user.email, "user_name": str(message.user), "user_img": message.user.image_url}) | |
| 0 | 43 | \ No newline at end of file | ... | ... |
api/views.py
| ... | ... | @@ -35,6 +35,8 @@ from django.http import HttpResponse |
| 35 | 35 | |
| 36 | 36 | from fcm_django.models import FCMDevice |
| 37 | 37 | |
| 38 | +from .utils import sendChatPushNotification | |
| 39 | + | |
| 38 | 40 | @csrf_exempt |
| 39 | 41 | def getToken(request): |
| 40 | 42 | oauth = Application.objects.filter(name = "amadeus-droid") |
| ... | ... | @@ -303,7 +305,14 @@ class ChatViewset(viewsets.ModelViewSet): |
| 303 | 305 | |
| 304 | 306 | talk.save() |
| 305 | 307 | |
| 306 | - subject = Subject.objects.get(slug = subject) | |
| 308 | + if subject != "": | |
| 309 | + subject = Subject.objects.get(slug = subject) | |
| 310 | + space = subject.slug | |
| 311 | + space_type = "subject" | |
| 312 | + else: | |
| 313 | + subject = None | |
| 314 | + space = 0 | |
| 315 | + space_type = "general" | |
| 307 | 316 | |
| 308 | 317 | message = TalkMessages() |
| 309 | 318 | message.text = "<p>" + msg_text + "</p>" |
| ... | ... | @@ -318,11 +327,11 @@ class ChatViewset(viewsets.ModelViewSet): |
| 318 | 327 | |
| 319 | 328 | if not message.pk is None: |
| 320 | 329 | simple_notify = textwrap.shorten(strip_tags(message.text), width = 30, placeholder = "...") |
| 321 | - | |
| 330 | + | |
| 322 | 331 | notification = { |
| 323 | 332 | "type": "chat", |
| 324 | - "subtype": "subject", | |
| 325 | - "space": subject.slug, | |
| 333 | + "subtype": space_type, | |
| 334 | + "space": space, | |
| 326 | 335 | "user_icon": message.user.image_url, |
| 327 | 336 | "notify_title": str(message.user), |
| 328 | 337 | "simple_notify": simple_notify, |
| ... | ... | @@ -349,6 +358,8 @@ class ChatViewset(viewsets.ModelViewSet): |
| 349 | 358 | info["message"] = _("Message sent successfully!") |
| 350 | 359 | info["success"] = True |
| 351 | 360 | info["number"] = 1 |
| 361 | + | |
| 362 | + sendChatPushNotification(user_to, message) | |
| 352 | 363 | else: |
| 353 | 364 | info["message"] = _("Error while sending message!") |
| 354 | 365 | info["success"] = False | ... | ... |
backup.json
| 1 | -[[{"id": 6, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 48, "name": "anything"}, {"id": 49, "name": "lsoe"}], "pendencies_resource": [], "groups": [], "students": [{"id": 179, "log": [], "password": "pbkdf2_sha256$30000$5gbyp9Al3C2n$rroJzhQWFLetSzLJto5kyVC4z2hycFSWhH8uq3lhazI=", "last_login": "2017-01-23T22:49:17.560412Z", "is_superuser": false, "email": "e178@amadeus.br", "username": "e", "last_name": "178", "social_name": "Estudante 178", "description": "<p>Estudante da Universidade Federal do Vale do S\u00e3o Francisco - <b>UNIVASF</b>.</p>", "image": "/uploads/users/e178.jpg", "date_created": "2017-01-01T03:00:00Z", "last_update": "2017-01-01T03:00:00Z", "show_email": 1, "is_staff": false, "is_active": true, "groups": [], "user_permissions": []}, {"id": 180, "log": [{"id": 521, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-02-09T15:20:22.785376Z"}, {"id": 661, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-02-20T13:47:40.169910Z"}, {"id": 1182, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488941129", "category_id": 22, "timestamp_start": "1488941127"}, "action": "view", "resource": "subject", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-03-08T02:45:27.700588Z"}, {"id": 1183, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488941132", "category_id": 22, "timestamp_start": "1488941129"}, "action": "access", "resource": "subject", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-03-08T02:45:29.258883Z"}, {"id": 1184, "component": "topic", "context": {"topic_id": 32, "category_name": "F\u00cdSICA", "topic_slug": "now-invisble", "subject_id": 459, "topic_name": "Now Invisble", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488941132", "category_id": 22, "timestamp_start": "1488941131", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-03-08T02:45:31.583986Z"}, {"id": 1185, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488941132", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488941138", "category_id": 22}, "action": "view", "resource": "goals", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-03-08T02:45:32.592430Z"}, {"id": 1186, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488941132", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "submit", "resource": "goals", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-03-08T02:45:38.340224Z"}, {"id": 1187, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488941138", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-03-08T02:45:38.526546Z"}, {"id": 1219, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 179", "user_id": 180, "user_email": "e179@amadeus.br", "datetime": "2017-03-11T00:37:10.275153Z"}], "password": "pbkdf2_sha256$30000$5gbyp9Al3C2n$rroJzhQWFLetSzLJto5kyVC4z2hycFSWhH8uq3lhazI=", "last_login": "2017-03-08T02:45:23.288024Z", "is_superuser": false, "email": "e179@amadeus.br", "username": "e", "last_name": "179", "social_name": "Estudante 179", "description": "<p>Estudante da Universidade Federal do Vale do S\u00e3o Francisco - <b>UNIVASF</b>.</p>", "image": "/uploads/users/e179.jpg", "date_created": "2017-01-01T03:00:00Z", "last_update": "2017-01-01T03:00:00Z", "show_email": 1, "is_staff": false, "is_active": true, "groups": [], "user_permissions": []}, {"id": 181, "log": [{"id": 759, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819337", "subject_id": 459, "timestamp_start": "1487819274", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:07:54.790064Z"}, {"id": 762, "component": "pendencies", "context": {"notification_id": 1264, "notification": "Criar Teste 2"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:09:05.305320Z"}, {"id": 205, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485470536", "category_id": 22, "timestamp_start": "1485470531"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:11.752255Z"}, {"id": 204, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485470531", "category_id": 22, "timestamp_start": "1485470530"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:10.443457Z"}, {"id": 206, "component": "topic", "context": {"topic_id": 28, "category_name": "F\u00cdSICA", "topic_slug": "topico", "subject_id": 459, "topic_name": "T\u00f3pico", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485470536", "category_id": 22, "timestamp_start": "1485470533", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:13.800455Z"}, {"id": 300, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817823"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:23.718744Z"}, {"id": 207, "component": "resources", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "webpage_slug": "runaway", "subject_slug": "acustica", "topic_id": 28, "timestamp_start": "1485470536", "topic_slug": "topico", "topic_name": "T\u00f3pico", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485470541", "webpage_id": 34, "category_id": 22, "webpage_name": "Runaway"}, "action": "view", "resource": "webpage", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:16.899890Z"}, {"id": 208, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485470541"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:21.748456Z"}, {"id": 761, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819596", "subject_id": 459, "timestamp_start": "1487819340", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:09:00.105224Z"}, {"id": 210, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-27T00:00:27.896353Z"}, {"id": 209, "component": "topic", "context": {"topic_id": 28, "category_name": "F\u00cdSICA", "topic_slug": "topico", "subject_id": 459, "topic_name": "T\u00f3pico", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485551249", "category_id": 22, "timestamp_start": "1485470542", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:22.309161Z"}, {"id": 763, "component": "mural", "context": {"timestamp_end": "1487819618", "timestamp_start": "1487819597"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:13:17.210969Z"}, {"id": 242, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-28T00:14:10.442184Z"}, {"id": 235, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485551258", "category_id": 22, "timestamp_start": "1485551257"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-27T21:07:37.363710Z"}, {"id": 236, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-27T21:07:46.302234Z"}, {"id": 248, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-28T00:40:09.156424Z"}, {"id": 252, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T17:03:06.179857Z"}, {"id": 254, "component": "subject", "context": {"search_for": "matem\u00e1tica"}, "action": "search", "resource": "subject/resources", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T17:32:54.742653Z"}, {"id": 255, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485800449", "category_id": 22, "timestamp_start": "1485800431"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T18:20:31.082273Z"}, {"id": 256, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T18:20:49.508637Z"}, {"id": 272, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T18:30:48.022453Z"}, {"id": 296, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T19:51:02.361646Z"}, {"id": 297, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817067", "category_id": 22, "timestamp_start": "1485817029"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T22:57:09.534154Z"}, {"id": 298, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817823", "category_id": 22, "timestamp_start": "1485817816"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:16.573429Z"}, {"id": 302, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817823"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:23.999732Z"}, {"id": 303, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.167376Z"}, {"id": 324, "component": "category", "context": {"timestamp_start": "1485976208", "category_slug": "administracao", "category_name": "ADMINISTRA\u00c7\u00c3O", "category_id": 1, "timestamp_end": "1485976214"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:10:08.328805Z"}, {"id": 304, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.321138Z"}, {"id": 313, "component": "topic", "context": {"topic_id": 28, "category_name": "F\u00cdSICA", "topic_slug": "topico", "subject_id": 459, "topic_name": "T\u00f3pico", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485817863", "category_id": 22, "timestamp_start": "1485817861", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:11:01.913755Z"}, {"id": 314, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:52:56.763660Z"}, {"id": 299, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817824", "category_id": 22, "timestamp_start": "1485817823"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:23.507849Z"}, {"id": 305, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.948644Z"}, {"id": 306, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.964254Z"}, {"id": 301, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817824", "category_id": 22, "timestamp_start": "1485817823"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:23.893312Z"}, {"id": 307, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.982882Z"}, {"id": 308, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.983647Z"}, {"id": 309, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817856", "category_id": 22, "timestamp_start": "1485817825"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:25.040109Z"}, {"id": 310, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817856"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:56.623919Z"}, {"id": 315, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485837050", "category_id": 22, "timestamp_start": "1485837013"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T04:30:13.979178Z"}, {"id": 311, "component": "topic", "context": {"topic_id": 31, "category_name": "F\u00cdSICA", "topic_slug": "invisible", "subject_id": 459, "topic_name": "Visible", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485817860", "category_id": 22, "timestamp_start": "1485817858", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:58.793794Z"}, {"id": 316, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T12:47:37.896380Z"}, {"id": 312, "component": "topic", "context": {"topic_id": 29, "category_name": "F\u00cdSICA", "topic_slug": "troia", "subject_id": 459, "topic_name": "troia", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485817861", "category_id": 22, "timestamp_start": "1485817860", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:11:00.819240Z"}, {"id": 317, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T18:37:38.618881Z"}, {"id": 318, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T19:12:32.773778Z"}, {"id": 319, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T23:28:13.691378Z"}, {"id": 320, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T14:34:07.639190Z"}, {"id": 323, "component": "category", "context": {"timestamp_start": "1485974786", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1485974790"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T18:46:25.990585Z"}, {"id": 321, "component": "category", "context": {"timestamp_start": "1485974281", "category_slug": "agronomia", "category_name": "AGRONOMIA", "category_id": 2, "timestamp_end": "1485974735"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T18:38:01.194092Z"}, {"id": 322, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485974772", "category_id": 22, "timestamp_start": "1485974769"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T18:46:09.361339Z"}, {"id": 325, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485976246", "category_id": 22, "timestamp_start": "1485976245"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:10:45.062924Z"}, {"id": 326, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485976264", "category_id": 22, "timestamp_start": "1485976246"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:10:46.849697Z"}, {"id": 327, "component": "topic", "context": {"topic_id": 31, "category_name": "F\u00cdSICA", "topic_slug": "invisible", "subject_id": 459, "topic_name": "Visible", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485976261", "category_id": 22, "timestamp_start": "1485976260", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:11:00.675879Z"}, {"id": 328, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:11:04.309321Z"}, {"id": 767, "component": "mural", "context": {"post_id": "120"}, "action": "delete_post", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:18:20.846208Z"}, {"id": 356, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-02T17:51:57.991297Z"}, {"id": 764, "component": "mural", "context": {"timestamp_end": "1487820251", "timestamp_start": "1487819865"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:17:45.551898Z"}, {"id": 768, "component": "mural", "context": {"timestamp_end": "1487820270", "timestamp_start": "1487820251"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:24:11.371756Z"}, {"id": 770, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "83", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:25:32.108185Z"}, {"id": 500, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-05T03:49:10.189731Z"}, {"id": 498, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-04T02:16:03.713455Z"}, {"id": 506, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-06T21:52:10.915119Z"}, {"id": 514, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-08T20:24:50.861429Z"}, {"id": 586, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-13T20:03:44.925986Z"}, {"id": 1943, "component": "chat", "context": {"timestamp_end": "1491527631", "timestamp_start": "1491527509"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:49.574701Z"}, {"id": 593, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-14T15:01:30.551792Z"}, {"id": 595, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-14T21:40:49.191265Z"}, {"id": 608, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-16T10:30:44.154434Z"}, {"id": 616, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-17T00:49:36.985050Z"}, {"id": 620, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-17T23:46:37.967352Z"}, {"id": 632, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-18T02:45:09.855062Z"}, {"id": 633, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-18T03:10:14.618203Z"}, {"id": 656, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-18T16:27:53.309528Z"}, {"id": 760, "component": "pendencies", "context": {"notification_id": 1264, "notification": "Criar Teste 2"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:08:03.959137Z"}, {"id": 752, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T01:44:31.566063Z"}, {"id": 747, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487811503", "subject_id": 459, "timestamp_start": "1487811472", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T00:57:52.930523Z"}, {"id": 748, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487811515", "subject_id": 459, "timestamp_start": "1487811503", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T00:58:23.491201Z"}, {"id": 749, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487811640", "subject_id": 459, "timestamp_start": "1487811515", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T00:58:35.675991Z"}, {"id": 750, "component": "pendencies", "context": {"timestamp_start": "1487811640", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1487811667", "history_page": "2"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T01:00:40.332145Z"}, {"id": 751, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487811714", "subject_id": 459, "timestamp_start": "1487811667", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T01:01:07.531334Z"}, {"id": 755, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819072", "subject_id": 459, "timestamp_start": "1487818941", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:02:21.881897Z"}, {"id": 754, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487818941", "subject_id": 459, "timestamp_start": "1487818935", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:02:15.907517Z"}, {"id": 756, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819088", "subject_id": 459, "timestamp_start": "1487819079", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:04:39.304989Z"}, {"id": 757, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819248", "subject_id": 459, "timestamp_start": "1487819083", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:04:43.266285Z"}, {"id": 758, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819272", "subject_id": 459, "timestamp_start": "1487819248", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:07:28.517853Z"}, {"id": 765, "component": "mural", "context": {}, "action": "create_post", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:17:54.672547Z"}, {"id": 766, "component": "mural", "context": {"post_id": "120"}, "action": "edit_post", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:18:08.851857Z"}, {"id": 769, "component": "mural", "context": {"post_id": "119"}, "action": "create_comment", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:24:21.928140Z"}, {"id": 771, "component": "mural", "context": {"category_name": "F\u00cdSICA", "post_id": "118", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:25:52.653247Z"}, {"id": 772, "component": "mural", "context": {"category_name": "F\u00cdSICA", "post_id": "91", "subject_id": 509, "category_slug": "fisica", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "category_id": 22}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:26:34.622097Z"}, {"id": 773, "component": "mural", "context": {"category_name": "F\u00cdSICA", "post_id": "91", "subject_id": 509, "category_slug": "fisica", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "category_id": 22}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:27:55.609252Z"}, {"id": 774, "component": "mural", "context": {"subject_name": "AERONOMIA", "post_id": "91", "subject_id": 509, "subject_slug": "aeronomia"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:29:02.640123Z"}, {"id": 775, "component": "mural", "context": {"subject_name": "AERONOMIA", "post_id": "91", "subject_id": 509, "subject_slug": "aeronomia"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:30:02.458851Z"}, {"id": 776, "component": "mural", "context": {"category_name": "F\u00cdSICA", "post_id": "57", "subject_id": 509, "category_slug": "fisica", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:30:24.187150Z"}, {"id": 777, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "56", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:32:05.419796Z"}, {"id": 778, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": "117", "subject_id": 459, "subject_slug": "acustica"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:32:29.703509Z"}, {"id": 779, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "56", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:32:51.016742Z"}, {"id": 780, "component": "mural", "context": {"resource_name": "Testando", "post_id": "104", "subject_id": 459, "resource_id": 47, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "testando"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:37:06.917608Z"}, {"id": 781, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": "117", "subject_id": 459, "subject_slug": "acustica"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:37:25.110939Z"}, {"id": 782, "component": "mural", "context": {"resource_name": "Testando", "post_id": "104", "subject_id": 459, "resource_id": 47, "comment_id": "64", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "testando"}, "action": "edit_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:38:55.588303Z"}, {"id": 783, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": "117", "subject_id": 459, "comment_id": "65", "subject_slug": "acustica"}, "action": "edit_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:39:11.828612Z"}, {"id": 784, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "56", "category_id": 22, "comment_id": "62"}, "action": "edit_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:39:37.546127Z"}, {"id": 786, "component": "mural", "context": {"post_id": "119", "comment_id": "51"}, "action": "edit_comment", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:39:58.143755Z"}, {"id": 785, "component": "mural", "context": {"timestamp_end": "1487821254", "timestamp_start": "1487821183"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:39:43.778697Z"}, {"id": 787, "component": "mural", "context": {"resource_name": "Testando", "post_id": "104", "subject_id": 459, "resource_id": 47, "comment_id": "64", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "testando"}, "action": "delete_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:04.684362Z"}, {"id": 788, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "56", "category_id": 22, "comment_id": "62"}, "action": "delete_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:19.841564Z"}, {"id": 789, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": "117", "subject_id": 459, "comment_id": "65", "subject_slug": "acustica"}, "action": "delete_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:32.368296Z"}, {"id": 791, "component": "mural", "context": {"post_id": "119", "comment_id": "51"}, "action": "delete_comment", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:45.087772Z"}, {"id": 790, "component": "mural", "context": {"timestamp_end": "1487821570", "timestamp_start": "1487821299"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:39.638918Z"}, {"id": 792, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22}, "action": "create_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:46:17.426384Z"}, {"id": 793, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": 121, "category_id": 22}, "action": "edit_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:46:36.152350Z"}, {"id": 794, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": 121, "category_id": 22}, "action": "delete_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:46:44.551370Z"}, {"id": 795, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "subject_id": 459, "subject_slug": "acustica"}, "action": "create_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:07.758060Z"}, {"id": 796, "component": "mural", "context": {"resource_name": "Found here", "subject_id": 459, "resource_id": 29, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "found-here"}, "action": "create_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:20.229336Z"}, {"id": 797, "component": "mural", "context": {"resource_name": "Found here", "post_id": 123, "subject_id": 459, "resource_id": 29, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "found-here"}, "action": "edit_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:39.066914Z"}, {"id": 798, "component": "mural", "context": {"resource_name": "Found here", "post_id": 122, "subject_id": 459, "resource_id": 29, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "found-here"}, "action": "edit_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:50.112559Z"}, {"id": 799, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": 122, "subject_id": 459, "subject_slug": "acustica"}, "action": "delete_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:58.543414Z"}, {"id": 800, "component": "mural", "context": {"resource_name": "Found here", "post_id": 123, "subject_id": 459, "resource_id": 29, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "found-here"}, "action": "delete_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:52:01.913353Z"}, {"id": 801, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487822069", "subject_id": 459, "timestamp_start": "1487822058", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:54:18.886887Z"}, {"id": 802, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1487822092", "category_id": 22, "timestamp_start": "1487822069"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:54:29.908068Z"}, {"id": 803, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1487822218", "category_id": 22, "timestamp_start": "1487822217"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:56:57.566068Z"}, {"id": 804, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1487822222", "category_id": 22, "timestamp_start": "1487822218"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:56:58.938426Z"}, {"id": 805, "component": "subject", "context": {"category_name": "GEOCI\u00caNCIAS", "subject_id": 509, "category_slug": "geociencias", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "timestamp_end": "1487822228", "category_id": 23, "timestamp_start": "1487822227"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:57:07.421128Z"}, {"id": 806, "component": "subject", "context": {"category_name": "GEOCI\u00caNCIAS", "subject_id": 509, "category_slug": "geociencias", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "timestamp_end": "1487822230", "category_id": 23, "timestamp_start": "1487822228"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:57:08.643965Z"}, {"id": 818, "component": "mural", "context": {"timestamp_end": "1487822925", "timestamp_start": "1487822922"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:08:42.820267Z"}, {"id": 820, "component": "mural", "context": {"subject_name": "AERONOMIA", "timestamp_end": "1487822950", "subject_id": 509, "timestamp_start": "1487822942", "subject_slug": "aeronomia"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:09:02.752121Z"}, {"id": 819, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487822942", "subject_id": 459, "timestamp_start": "1487822929", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:08:49.664237Z"}, {"id": 821, "component": "mural", "context": {"timestamp_start": "1487822964", "category_slug": "ecologia", "category_name": "ECONOMIA", "category_id": 12, "timestamp_end": "1487822972"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:09:24.119330Z"}, {"id": 822, "component": "mural", "context": {"timestamp_start": "1487822972", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1487822978"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:09:32.720221Z"}, {"id": 824, "component": "mural", "context": {"timestamp_start": "1487823004", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1487823011"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:10:04.914334Z"}, {"id": 823, "component": "mural", "context": {"timestamp_start": "1487823004", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1487823023"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:10:04.537879Z"}, {"id": 826, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823060", "subject_id": 459, "timestamp_start": "1487823025", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:10:25.399030Z"}, {"id": 844, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:17:08.034061Z"}, {"id": 838, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823262", "subject_id": 459, "timestamp_start": "1487823216", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:13:36.593832Z"}, {"id": 835, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823262", "subject_id": 459, "timestamp_start": "1487823200", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:13:19.973986Z"}, {"id": 837, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823262", "subject_id": 459, "timestamp_start": "1487823216", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:13:36.239900Z"}, {"id": 828, "component": "mural", "context": {"subject_name": "AERONOMIA", "timestamp_end": "1487823086", "subject_id": 509, "timestamp_start": "1487823068", "subject_slug": "aeronomia"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:11:08.658689Z"}, {"id": 825, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823133", "subject_id": 459, "timestamp_start": "1487823025", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:10:25.024652Z"}, {"id": 827, "component": "mural", "context": {"subject_name": "AERONOMIA", "timestamp_end": "1487823133", "subject_id": 509, "timestamp_start": "1487823068", "subject_slug": "aeronomia"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:11:08.283495Z"}, {"id": 829, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823133", "subject_id": 459, "timestamp_start": "1487823086", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:11:26.037229Z"}, {"id": 830, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823133", "subject_id": 459, "timestamp_start": "1487823086", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:11:26.421082Z"}, {"id": 839, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823274", "subject_id": 459, "timestamp_start": "1487823264", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:14:24.814253Z"}, {"id": 831, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823152", "subject_id": 459, "timestamp_start": "1487823138", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:12:18.915670Z"}, {"id": 832, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823152", "subject_id": 459, "timestamp_start": "1487823139", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:12:19.310937Z"}, {"id": 834, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823184", "subject_id": 459, "timestamp_start": "1487823155", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:12:35.803614Z"}, {"id": 833, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823198", "subject_id": 459, "timestamp_start": "1487823155", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:12:35.349965Z"}, {"id": 840, "component": "mural", "context": {"subject_name": "AERONOMIA", "timestamp_end": "1487823283", "subject_id": 509, "timestamp_start": "1487823279", "subject_slug": "aeronomia"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:14:39.617722Z"}, {"id": 836, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823209", "subject_id": 459, "timestamp_start": "1487823200", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:13:20.363273Z"}, {"id": 841, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823288", "subject_id": 459, "timestamp_start": "1487823283", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:14:43.420174Z"}, {"id": 842, "component": "mural", "context": {"timestamp_start": "1487823308", "category_slug": "ecologia", "category_name": "ECONOMIA", "category_id": 12, "timestamp_end": "1487823317"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:15:08.906391Z"}, {"id": 843, "component": "mural", "context": {"timestamp_start": "1487823317", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1487823325"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:15:17.374624Z"}, {"id": 1057, "component": "mural", "context": {"timestamp_start": "1488237433"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-27T23:17:13.774687Z"}, {"id": 1100, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488503911", "category_id": 22, "timestamp_start": "1488503910"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-03T01:18:30.621679Z"}, {"id": 1102, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-03T01:18:40.974286Z"}, {"id": 1101, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488503920", "category_id": 22, "timestamp_start": "1488503911"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-03T01:18:31.947009Z"}, {"id": 1107, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-03T01:47:20.608235Z"}, {"id": 1135, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488843766", "category_id": 22, "timestamp_start": "1488843765"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:42:45.788392Z"}, {"id": 1143, "component": "resources", "context": {"topic_slug": "repositorio", "subject_id": 459, "category_slug": "fisica", "goals_slug": "snuff", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 70, "timestamp_start": "1488844187", "topic_id": 30, "goals_name": "Snuff", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:49:47.208564Z"}, {"id": 1136, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488843808", "category_id": 22, "timestamp_start": "1488843766"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:42:46.977064Z"}, {"id": 1141, "component": "resources", "context": {"topic_slug": "repositorio", "subject_id": 459, "category_slug": "fisica", "goals_slug": "snuff", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 70, "timestamp_start": "1488843808", "topic_id": 30, "goals_name": "Snuff", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488843810", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:43:28.284675Z"}, {"id": 1142, "component": "resources", "context": {"topic_slug": "repositorio", "subject_id": 459, "category_slug": "fisica", "goals_slug": "snuff", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 70, "topic_id": 30, "goals_name": "Snuff", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "update", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:49:47.133749Z"}, {"id": 1144, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-07T00:10:48.186363Z"}, {"id": 1174, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488936573", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "submit", "resource": "goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:39.285570Z"}, {"id": 1170, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488936569", "category_id": 22, "timestamp_start": "1488936568"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:28.317125Z"}, {"id": 1171, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488936573", "category_id": 22, "timestamp_start": "1488936569"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:29.784524Z"}, {"id": 1172, "component": "topic", "context": {"topic_id": 32, "category_name": "F\u00cdSICA", "topic_slug": "now-invisble", "subject_id": 459, "topic_name": "Now Invisble", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488936573", "category_id": 22, "timestamp_start": "1488936571", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:31.953040Z"}, {"id": 1173, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488936573", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488936579", "category_id": 22}, "action": "view", "resource": "goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:33.676092Z"}, {"id": 1175, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488936579", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488936619", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:39.391830Z"}, {"id": 1176, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488936619", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:30:19.150112Z"}, {"id": 1181, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T02:45:16.171950Z"}, {"id": 1222, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-14T00:50:31.882062Z"}, {"id": 1221, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-11T01:03:34.669314Z"}, {"id": 1314, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-29T00:49:02.657364Z"}, {"id": 1316, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1490751661", "category_id": 22, "timestamp_start": "1490751658"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-29T01:40:58.604592Z"}, {"id": 1317, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1490751663"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-29T01:41:03.689244Z"}, {"id": 1560, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:33:22.315075Z"}, {"id": 1561, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491183816", "category_id": 22, "timestamp_start": "1491183815"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:43:35.720998Z"}, {"id": 1563, "component": "topic", "context": {"topic_id": 32, "category_name": "F\u00cdSICA", "topic_slug": "now-invisble", "subject_id": 459, "topic_name": "Now Invisble", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1491183825", "category_id": 22, "timestamp_start": "1491183823", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:43:43.290815Z"}, {"id": 1562, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491183885", "category_id": 22, "timestamp_start": "1491183817"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:43:37.063065Z"}, {"id": 1566, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491183889", "category_id": 22, "timestamp_start": "1491183885"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:44:45.216039Z"}, {"id": 1674, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:55:42.781884Z"}, {"id": 1672, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:55:31.808049Z"}, {"id": 1677, "component": "chat", "context": {"subject_slug": "acustica", "user_email": "admin@amadeus.br", "subject_id": 459, "user_id": 1, "subject_name": "AC\u00daSTICA", "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:56:06.899904Z"}, {"id": 1673, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491353995", "subject_id": 459, "timestamp_start": "1491353740", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:55:40.507639Z"}, {"id": 1680, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:59:58.055991Z"}, {"id": 1682, "component": "chat", "context": {"subject_slug": "acustica", "user_email": "admin@amadeus.br", "subject_id": 459, "user_id": 1, "subject_name": "AC\u00daSTICA", "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:00:12.811175Z"}, {"id": 1679, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491354252", "subject_id": 459, "timestamp_start": "1491353995", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:59:55.874379Z"}, {"id": 1693, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_start": "1491354252", "subject_id": 459, "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:04:12.888402Z"}, {"id": 1694, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:04:14.945824Z"}, {"id": 1696, "component": "chat", "context": {"subject_slug": "acustica", "user_email": "admin@amadeus.br", "subject_id": 459, "user_id": 1, "subject_name": "AC\u00daSTICA", "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:04:25.213499Z"}, {"id": 1706, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:26:38.737881Z"}, {"id": 1708, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:30:21.138639Z"}, {"id": 1714, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:31:01.523956Z"}, {"id": 1717, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:31:14.839898Z"}, {"id": 1718, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:31:32.243590Z"}, {"id": 1724, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:31:44.849951Z"}, {"id": 1726, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:33:11.529728Z"}, {"id": 1734, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:35:43.014849Z"}, {"id": 1735, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:35:55.926115Z"}, {"id": 1739, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:37:35.890388Z"}, {"id": 1743, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:38:33.250084Z"}, {"id": 1746, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:38:49.913400Z"}, {"id": 1754, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:39:25.747552Z"}, {"id": 1759, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:39:58.020397Z"}, {"id": 1761, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:40:12.797425Z"}, {"id": 1764, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:40:49.430312Z"}, {"id": 1794, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:07:03.400068Z"}, {"id": 1784, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:42:20.280954Z"}, {"id": 1785, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:42:30.548117Z"}, {"id": 1796, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:10:35.496279Z"}, {"id": 1788, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:43:23.405407Z"}, {"id": 1789, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:43:30.782736Z"}, {"id": 1790, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:03:32.318245Z"}, {"id": 1791, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:03:32.413256Z"}, {"id": 1792, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:06:49.315711Z"}, {"id": 1797, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:10:45.791602Z"}, {"id": 1815, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T00:00:25.725477Z"}, {"id": 1899, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:57:15.554937Z"}, {"id": 1840, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491510614", "category_id": 22, "timestamp_start": "1491510612"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T20:30:12.828480Z"}, {"id": 1839, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T20:30:08.661590Z"}, {"id": 1841, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1491510614"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T20:30:14.063029Z"}, {"id": 1897, "component": "chat", "context": {"timestamp_end": "1491526695", "timestamp_start": "1491526589"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:56:29.945407Z"}, {"id": 1942, "component": "chat", "context": {"timestamp_end": "1491527509", "timestamp_start": "1491527509"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:49.253164Z"}, {"id": 1900, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:57:23.165700Z"}, {"id": 1901, "component": "chat", "context": {"timestamp_end": "1491526739", "timestamp_start": "1491526695"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:58:15.786995Z"}, {"id": 1871, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T20:51:47.162180Z"}, {"id": 1891, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T21:15:48.378540Z"}, {"id": 1894, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T21:36:15.212908Z"}, {"id": 1896, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:56:11.860093Z"}, {"id": 1898, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:57:01.897417Z"}, {"id": 1902, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:58:18.465654Z"}, {"id": 1904, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:59:02.711508Z"}, {"id": 1915, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:00:30.323138Z"}, {"id": 1918, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:01:04.526598Z"}, {"id": 1903, "component": "chat", "context": {"timestamp_end": "1491526982", "timestamp_start": "1491526739"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:58:59.831863Z"}, {"id": 1929, "component": "chat", "context": {"timestamp_end": "1491526982", "timestamp_start": "1491526982"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:02.615804Z"}, {"id": 1930, "component": "chat", "context": {"timestamp_end": "1491526982", "timestamp_start": "1491526982"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:02.706737Z"}, {"id": 1932, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:05.385823Z"}, {"id": 1933, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:12.641895Z"}, {"id": 1941, "component": "chat", "context": {"timestamp_start": "1491527509"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:49.098422Z"}, {"id": 1931, "component": "chat", "context": {"timestamp_end": "1491527509", "timestamp_start": "1491526982"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:02.927070Z"}, {"id": 1940, "component": "chat", "context": {"timestamp_end": "1491527509", "timestamp_start": "1491527508"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:48.975144Z"}, {"id": 1944, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:52.348335Z"}, {"id": 1946, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:12:07.910661Z"}, {"id": 1967, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:39.219183Z"}, {"id": 1968, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:50.239122Z"}, {"id": 1953, "component": "chat", "context": {"timestamp_start": "1491527631"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:51.731589Z"}, {"id": 1952, "component": "chat", "context": {"timestamp_end": "1491527631", "timestamp_start": "1491527631"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:51.609850Z"}, {"id": 1955, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:54.065399Z"}, {"id": 1956, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:59.483762Z"}, {"id": 1957, "component": "chat", "context": {"timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.407929Z"}, {"id": 1958, "component": "chat", "context": {"timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.495772Z"}, {"id": 1954, "component": "chat", "context": {"timestamp_end": "1491527670", "timestamp_start": "1491527631"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:51.866635Z"}, {"id": 1959, "component": "chat", "context": {"timestamp_end": "1491527670", "timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.606353Z"}, {"id": 1960, "component": "chat", "context": {"timestamp_end": "1491527670", "timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.760560Z"}, {"id": 1961, "component": "chat", "context": {"timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.893797Z"}, {"id": 1971, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:36:10.846757Z"}, {"id": 2009, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:17:44.650595Z"}, {"id": 2010, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491603471", "subject_id": 459, "timestamp_start": "1491603469", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:17:49.021610Z"}, {"id": 2011, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_start": "1491603471", "search_by": "", "subject_id": 459, "subject_slug": "acustica"}, "action": "view", "resource": "subject_participants", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:17:51.587148Z"}, {"id": 2012, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador"}, "action": "view", "resource": "profile", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:17:53.520769Z"}, {"id": 2046, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:37:58.684059Z"}, {"id": 2148, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942929", "subject_id": 459, "timestamp_start": "1491942810", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:30.508338Z"}, {"id": 2141, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:29:50.158140Z"}, {"id": 2143, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:30:10.326303Z"}, {"id": 2144, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:30:29.252907Z"}, {"id": 2142, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942633", "subject_id": 459, "timestamp_start": "1491942597", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:29:57.251442Z"}, {"id": 2159, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944873", "subject_id": 459, "timestamp_start": "1491944688", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:04:48.914286Z"}, {"id": 2145, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942677", "subject_id": 459, "timestamp_start": "1491942633", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:30:33.297605Z"}, {"id": 2156, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:35:48.098332Z"}, {"id": 2146, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942691", "subject_id": 459, "timestamp_start": "1491942677", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:31:17.014560Z"}, {"id": 2155, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942953", "subject_id": 459, "timestamp_start": "1491942933", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:35:33.136966Z"}, {"id": 2147, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942810", "subject_id": 459, "timestamp_start": "1491942691", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:31:31.706590Z"}, {"id": 2158, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944688", "subject_id": 459, "timestamp_start": "1491944687", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:04:47.759404Z"}, {"id": 2149, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.077376Z"}, {"id": 2150, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.088045Z"}, {"id": 2151, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.151688Z"}, {"id": 2152, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.233088Z"}, {"id": 2153, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.310043Z"}, {"id": 2154, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.332206Z"}, {"id": 2157, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944684", "subject_id": 459, "timestamp_start": "1491942953", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:35:53.050266Z"}, {"id": 2160, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:07:52.577789Z"}, {"id": 2161, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944882", "subject_id": 459, "timestamp_start": "1491944881", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:08:01.246381Z"}, {"id": 2162, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944961", "subject_id": 459, "timestamp_start": "1491944882", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:08:02.640389Z"}, {"id": 2163, "component": "pendencies", "context": {"timestamp_start": "1491944966", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491944968"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:09:26.304121Z"}, {"id": 2164, "component": "pendencies", "context": {"timestamp_start": "1491944968", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1491944974", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:09:28.662583Z"}, {"id": 2165, "component": "pendencies", "context": {"timestamp_start": "1491944974", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11/04/2017", "timestamp_end": "1491945024", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:09:34.927707Z"}, {"id": 2176, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:41:42.290483Z"}, {"id": 2166, "component": "pendencies", "context": {"timestamp_start": "1491945024", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11/04/2017", "timestamp_end": "1491945544", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:10:24.503694Z"}, {"id": 2167, "component": "pendencies", "context": {"timestamp_start": "1491945544", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11-04-2017", "timestamp_end": "1491945556", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:04.772824Z"}, {"id": 2168, "component": "pendencies", "context": {"timestamp_start": "1491945557", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11-31-2017", "timestamp_end": "1491945571", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:17.029781Z"}, {"id": 2169, "component": "pendencies", "context": {"timestamp_start": "1491945571", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11/31/2017", "timestamp_end": "1491945577", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:31.833808Z"}, {"id": 2170, "component": "pendencies", "context": {"timestamp_start": "1491945578", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "hey", "timestamp_end": "1491945580", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:38.099706Z"}, {"id": 2171, "component": "pendencies", "context": {"timestamp_start": "1491945580", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1491945611", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:40.889903Z"}, {"id": 2172, "component": "pendencies", "context": {"timestamp_start": "1491945611", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "13/04/2017", "timestamp_end": "1491945804", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:20:11.893170Z"}, {"id": 2173, "component": "pendencies", "context": {"timestamp_start": "1491945804", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491945813"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:23:24.762807Z"}, {"id": 2174, "component": "pendencies", "context": {"timestamp_start": "1491945813", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1491945829", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:23:33.432888Z"}, {"id": 2175, "component": "pendencies", "context": {"subject_id": 459, "timestamp_start": "1491945830", "subject_slug": "acustica", "view_page": 1, "subject_name": "AC\u00daSTICA"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:23:50.005128Z"}, {"id": 2179, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:01:55.058108Z"}, {"id": 2184, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:10:12.294248Z"}, {"id": 2185, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491948957", "subject_id": 459, "timestamp_start": "1491948954", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:15:54.043169Z"}, {"id": 2186, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491948962", "category_id": 22, "timestamp_start": "1491948957"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:15:57.853109Z"}, {"id": 2187, "component": "pendencies", "context": {"timestamp_start": "1491948962", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491948983"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:16:02.106115Z"}, {"id": 2188, "component": "pendencies", "context": {"timestamp_start": "1491948984", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491948991"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:16:24.139829Z"}, {"id": 2189, "component": "pendencies", "context": {"timestamp_start": "1491948991", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1491948994", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:16:31.732021Z"}, {"id": 2190, "component": "pendencies", "context": {"timestamp_start": "1491948994", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491948996"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:16:34.736917Z"}, {"id": 2191, "component": "pendencies", "context": {"timestamp_start": "1491949038", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491949173"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:17:18.291869Z"}, {"id": 2192, "component": "pendencies", "context": {"subject_id": 459, "timestamp_start": "1491949173", "subject_slug": "acustica", "view_page": 1, "subject_name": "AC\u00daSTICA"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:19:33.749609Z"}, {"id": 2193, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:39:40.053706Z"}, {"id": 2199, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:21:12.724246Z"}, {"id": 2200, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492125909", "subject_id": 459, "timestamp_start": "1492125906", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:25:06.780756Z"}, {"id": 2201, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126007", "subject_id": 459, "timestamp_start": "1492125909", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:25:09.273239Z"}, {"id": 2212, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126358", "subject_id": 459, "timestamp_start": "1492126357", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:32:37.557078Z"}, {"id": 2202, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126011", "subject_id": 459, "timestamp_start": "1492126010", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:26:50.137306Z"}, {"id": 2223, "component": "pendencies", "context": {"timestamp_start": "1492126904", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492126909", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:44.272424Z"}, {"id": 2203, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126103", "subject_id": 459, "timestamp_start": "1492126011", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:26:51.234380Z"}, {"id": 2213, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126732", "subject_id": 459, "timestamp_start": "1492126358", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:32:38.624614Z"}, {"id": 2204, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126106", "subject_id": 459, "timestamp_start": "1492126105", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:28:25.440805Z"}, {"id": 2205, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126227", "subject_id": 459, "timestamp_start": "1492126106", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:28:26.670663Z"}, {"id": 2219, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126894", "subject_id": 459, "timestamp_start": "1492126799", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:39:59.389663Z"}, {"id": 2206, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126231", "subject_id": 459, "timestamp_start": "1492126230", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:30:30.572946Z"}, {"id": 2207, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126241", "subject_id": 459, "timestamp_start": "1492126231", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:30:31.791530Z"}, {"id": 2214, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126736", "subject_id": 459, "timestamp_start": "1492126735", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:38:55.254223Z"}, {"id": 2208, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126245", "subject_id": 459, "timestamp_start": "1492126244", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:30:44.238059Z"}, {"id": 2209, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126259", "subject_id": 459, "timestamp_start": "1492126245", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:30:45.283407Z"}, {"id": 2215, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126769", "subject_id": 459, "timestamp_start": "1492126736", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:38:56.550061Z"}, {"id": 2210, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126264", "subject_id": 459, "timestamp_start": "1492126263", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:31:03.689993Z"}, {"id": 2211, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126355", "subject_id": 459, "timestamp_start": "1492126264", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:31:04.890991Z"}, {"id": 2220, "component": "pendencies", "context": {"timestamp_start": "1492126897", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1492126898"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:37.180574Z"}, {"id": 2216, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126773", "subject_id": 459, "timestamp_start": "1492126772", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:39:31.963616Z"}, {"id": 2221, "component": "pendencies", "context": {"timestamp_start": "1492126898", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492126900", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:38.582164Z"}, {"id": 2217, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126795", "subject_id": 459, "timestamp_start": "1492126773", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:39:33.010223Z"}, {"id": 2218, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126799", "subject_id": 459, "timestamp_start": "1492126798", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:39:57.983037Z"}, {"id": 2222, "component": "pendencies", "context": {"timestamp_start": "1492126900", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492126904", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:40.800195Z"}, {"id": 2224, "component": "pendencies", "context": {"timestamp_start": "1492126909", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492126944", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:49.645436Z"}, {"id": 2225, "component": "pendencies", "context": {"timestamp_start": "1492126944", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1492127266"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:42:24.357067Z"}, {"id": 2232, "component": "pendencies", "context": {"timestamp_start": "1492127266", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127373", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:47:46.851877Z"}, {"id": 2233, "component": "pendencies", "context": {"timestamp_start": "1492127373", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127416", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:49:33.635556Z"}, {"id": 2240, "component": "pendencies", "context": {"timestamp_start": "1492127731", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127733", "history_page": "3"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:31.133416Z"}, {"id": 2235, "component": "pendencies", "context": {"timestamp_start": "1492127541", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:52:21.431470Z"}, {"id": 2234, "component": "pendencies", "context": {"timestamp_start": "1492127416", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127555", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:50:16.367796Z"}, {"id": 2236, "component": "pendencies", "context": {"timestamp_start": "1492127555", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127593", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:52:35.212062Z"}, {"id": 2237, "component": "pendencies", "context": {"timestamp_start": "1492127593", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127649", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:53:13.432324Z"}, {"id": 2238, "component": "pendencies", "context": {"timestamp_start": "1492127649", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127728", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:54:09.524902Z"}, {"id": 2239, "component": "pendencies", "context": {"timestamp_start": "1492127728", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127731", "history_page": "2"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:28.355818Z"}, {"id": 2241, "component": "pendencies", "context": {"timestamp_start": "1492127733", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127735", "history_page": "4"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:33.684922Z"}, {"id": 2242, "component": "pendencies", "context": {"timestamp_start": "1492127735", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127737", "history_page": "5"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:35.445654Z"}, {"id": 2243, "component": "pendencies", "context": {"timestamp_start": "1492127737", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127739", "history_page": "6"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:37.251554Z"}, {"id": 2244, "component": "pendencies", "context": {"timestamp_start": "1492127739", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127742", "history_page": "7"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:39.998168Z"}, {"id": 2245, "component": "pendencies", "context": {"timestamp_start": "1492127742", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127743", "history_page": "8"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:42.133961Z"}, {"id": 2246, "component": "pendencies", "context": {"timestamp_start": "1492127743", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127745", "history_page": "9"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:43.943443Z"}, {"id": 2247, "component": "pendencies", "context": {"timestamp_start": "1492127745", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127756", "history_page": "10"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:45.897845Z"}, {"id": 2248, "component": "pendencies", "context": {"timestamp_start": "1492127757", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1492127771"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:57.022979Z"}, {"id": 2249, "component": "resources", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "webpage_slug": "revenge", "subject_slug": "acustica", "topic_id": 30, "timestamp_start": "1492127771", "topic_slug": "repositorio", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "timestamp_end": "1492127776", "webpage_id": 1, "category_id": 22, "webpage_name": "Revenge"}, "action": "view", "resource": "webpage", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:11.291806Z"}, {"id": 2250, "component": "mural", "context": {"timestamp_start": "1492127776", "resource_name": "Revenge", "subject_id": 459, "resource_id": 1, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "revenge", "timestamp_end": "1492127779"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:16.753307Z"}, {"id": 2251, "component": "resources", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "webpage_slug": "revenge", "subject_slug": "acustica", "topic_id": 30, "timestamp_start": "1492127779", "topic_slug": "repositorio", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "timestamp_end": "1492127780", "webpage_id": 1, "category_id": 22, "webpage_name": "Revenge"}, "action": "view", "resource": "webpage", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:19.499351Z"}, {"id": 2252, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1492127783", "category_id": 22, "timestamp_start": "1492127780"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:20.859941Z"}, {"id": 2253, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492127788", "subject_id": 459, "timestamp_start": "1492127785", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:25.169011Z"}, {"id": 2255, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-14T00:21:41.686250Z"}, {"id": 2259, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-15T00:51:14.061387Z"}, {"id": 2254, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492217474", "subject_id": 459, "timestamp_start": "1492127788", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:28.959612Z"}, {"id": 2260, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492217494", "subject_id": 459, "timestamp_start": "1492217480", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-15T00:51:19.995842Z"}, {"id": 2586, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-26T01:36:33.745524Z"}, {"id": 2262, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-15T01:16:47.696572Z"}, {"id": 2261, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492995562", "subject_id": 459, "timestamp_start": "1492217494", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-15T00:51:34.056885Z"}, {"id": 2372, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T00:59:21.981258Z"}, {"id": 2373, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492995610", "subject_id": 459, "timestamp_start": "1492995567", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T00:59:27.281209Z"}, {"id": 2382, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032945", "subject_id": 459, "timestamp_start": "1493032865", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:21:05.272760Z"}, {"id": 2375, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T01:20:18.161716Z"}, {"id": 2377, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:12:26.191980Z"}, {"id": 2374, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032346", "subject_id": 459, "timestamp_start": "1492995613", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T01:00:13.607041Z"}, {"id": 2380, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032682", "subject_id": 459, "timestamp_start": "1493032591", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:16:31.039008Z"}, {"id": 2378, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032468", "subject_id": 459, "timestamp_start": "1493032349", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:12:29.644103Z"}, {"id": 2379, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032588", "subject_id": 459, "timestamp_start": "1493032471", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:14:31.716757Z"}, {"id": 2381, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032862", "subject_id": 459, "timestamp_start": "1493032685", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:18:05.403084Z"}, {"id": 2385, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032969", "subject_id": 459, "timestamp_start": "1493032948", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:22:28.461096Z"}, {"id": 2383, "component": "pendencies", "context": {}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:21:16.252767Z"}, {"id": 2384, "component": "pendencies", "context": {"notification_id": 3237, "notification": "Visualizar System"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:21:19.653812Z"}, {"id": 2387, "component": "pendencies", "context": {"notification_id": 3237, "notification": "Visualizar System"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:22:56.726714Z"}, {"id": 2386, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033066", "subject_id": 459, "timestamp_start": "1493032972", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:22:52.192138Z"}, {"id": 2388, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033080", "subject_id": 459, "timestamp_start": "1493033069", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:24:29.447632Z"}, {"id": 2389, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033136", "subject_id": 459, "timestamp_start": "1493033082", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:24:42.549281Z"}, {"id": 2401, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033725", "subject_id": 459, "timestamp_start": "1493033723", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:35:23.153863Z"}, {"id": 2391, "component": "pendencies", "context": {"notification_id": 3237, "notification": "Visualizar System"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:25:49.616646Z"}, {"id": 2390, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033184", "subject_id": 459, "timestamp_start": "1493033138", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:25:38.898596Z"}, {"id": 2402, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T12:10:29.965789Z"}, {"id": 2392, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033678", "subject_id": 459, "timestamp_start": "1493033187", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:26:27.067783Z"}, {"id": 2393, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033683", "subject_id": 459, "timestamp_start": "1493033680", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:40.778746Z"}, {"id": 2394, "component": "resources", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "webpage_slug": "angels-calling", "subject_slug": "acustica", "topic_id": 30, "timestamp_start": "1493033683", "topic_slug": "repositorio", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "timestamp_end": "1493033692", "webpage_id": 68, "category_id": 22, "webpage_name": "Angels calling"}, "action": "view", "resource": "webpage", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:43.787750Z"}, {"id": 2395, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033692", "subject_id": 459, "timestamp_start": "1493033688", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:48.345307Z"}, {"id": 2396, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1493033705", "category_id": 22, "timestamp_start": "1493033692"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:52.339304Z"}, {"id": 2397, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033705", "subject_id": 459, "timestamp_start": "1493033700", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:59.986089Z"}, {"id": 2398, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1493033713", "category_id": 22, "timestamp_start": "1493033705"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:35:05.066338Z"}, {"id": 2399, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033713", "subject_id": 459, "timestamp_start": "1493033711", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:35:11.051070Z"}, {"id": 2400, "component": "category", "context": {"timestamp_start": "1493033716", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1493033725"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:35:16.652183Z"}, {"id": 2557, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:08:11.603340Z"}, {"id": 2558, "component": "mural", "context": {"timestamp_end": "1495573702", "timestamp_start": "1495573699"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:08:19.229099Z"}, {"id": 2560, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22}, "action": "create_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:08:39.168190Z"}, {"id": 2559, "component": "mural", "context": {"timestamp_start": "1495573709", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1495574216"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:08:29.012379Z"}, {"id": 2562, "component": "mural", "context": {"category_slug": "artes", "category_name": "ARTES", "category_id": 6}, "action": "create_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:17:11.351727Z"}, {"id": 2561, "component": "mural", "context": {"timestamp_start": "1495574219", "category_slug": "artes", "category_name": "ARTES", "category_id": 6, "timestamp_end": "1495574237"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:16:59.492679Z"}, {"id": 2564, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22}, "action": "create_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:17:30.479031Z"}, {"id": 2565, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "128", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:30:13.435109Z"}, {"id": 2563, "component": "mural", "context": {"timestamp_start": "1495574237", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1495575021"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:17:17.902158Z"}, {"id": 2567, "component": "mural", "context": {"category_slug": "ecologia", "category_name": "ECONOMIA", "post_id": "62", "category_id": 12}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:30:30.236424Z"}, {"id": 2566, "component": "mural", "context": {"timestamp_start": "1495575021", "category_slug": "ecologia", "category_name": "ECONOMIA", "category_id": 12, "timestamp_end": "1495575095"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:30:21.372430Z"}, {"id": 2577, "component": "mural", "context": {"resource_name": "Revenge", "post_id": "124", "subject_id": 459, "resource_id": 1, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "revenge"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:37:43.750379Z"}, {"id": 2576, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1495575478", "subject_id": 459, "timestamp_start": "1495575454", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:37:34.193592Z"}, {"id": 2575, "component": "mural", "context": {"subject_name": "CRIA\u00c7\u00c3O DE ANIMAIS", "subject_id": 790, "subject_slug": "criacao-de-animais"}, "action": "create_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:37:23.764808Z"}, {"id": 2574, "component": "mural", "context": {"subject_name": "CRIA\u00c7\u00c3O DE ANIMAIS", "timestamp_end": "1495575453", "subject_id": 790, "timestamp_start": "1495575434", "subject_slug": "criacao-de-animais"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:37:14.769228Z"}, {"id": 2587, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1495762614", "subject_id": 459, "timestamp_start": "1495762601", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-26T01:36:41.713465Z"}, {"id": 2588, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-26T01:36:54.476891Z"}, {"id": 2636, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-26T02:27:25.484603Z"}], "password": "pbkdf2_sha256$30000$5gbyp9Al3C2n$rroJzhQWFLetSzLJto5kyVC4z2hycFSWhH8uq3lhazI=", "last_login": "2017-05-26T01:36:33.649932Z", "is_superuser": false, "email": "e180@amadeus.br", "username": "e", "last_name": "180", "social_name": "Estudante 180", "description": "<p>Estudante da Universidade Federal do Vale do S\u00e3o Francisco - <b>UNIVASF</b>.</p>", "image": "/uploads/users/hqdefault.jpg", "date_created": "2017-01-01T03:00:00Z", "last_update": "2017-02-06T18:58:16.633761Z", "show_email": 1, "is_staff": false, "is_active": true, "groups": [], "user_permissions": []}], "_my_subclass": "webpage", "name": "Doug", "slug": "doug", "brief_description": "<p>Today</p>", "show_window": true, "all_students": false, "visible": false, "order": 1, "create_date": "2017-01-23T17:36:14.900287Z", "last_update": "2017-01-24T17:33:39.433016Z", "content": "Freaky man"}, {"id": 20, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 69, "name": "noine"}, {"id": 70, "name": "nine"}], "pendencies_resource": [], "groups": [], "students": [], "_my_subclass": "webpage", "name": "Myself", "slug": "myself", "brief_description": "<p>Is up to me</p>", "show_window": false, "all_students": true, "visible": false, "order": 2, "create_date": "2017-01-23T22:59:42.592301Z", "last_update": "2017-01-24T17:34:20.147284Z", "content": "<title>Sold my soul</title><h5>I brought this all <em>upon myself<br>Dont stop me now!!</em></h5>"}, {"id": 42, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 95, "name": "history"}], "pendencies_resource": [], "groups": [], "students": [{"id": 178, "log": [], "password": "pbkdf2_sha256$30000$5gbyp9Al3C2n$rroJzhQWFLetSzLJto5kyVC4z2hycFSWhH8uq3lhazI=", "last_login": "2017-01-23T22:49:33.870448Z", "is_superuser": false, "email": "e177@amadeus.br", "username": "e", "last_name": "177", "social_name": "Estudante 177", "description": "<p>Estudante da Universidade Federal do Vale do S\u00e3o Francisco - <b>UNIVASF</b>.</p>", "image": "/uploads/users/760fc8ed80eeedde8633f8fa5e50ef0a_VzyKGEh.jpg", "date_created": "2017-01-01T03:00:00Z", "last_update": "2017-01-18T22:55:04.744047Z", "show_email": 1, "is_staff": false, "is_active": true, "groups": [], "user_permissions": []}], "_my_subclass": "webpage", "name": "History goes", "slug": "history-goes", "brief_description": "<p>How</p>", "show_window": false, "all_students": false, "visible": false, "order": 4, "create_date": "2017-01-24T21:57:13.600718Z", "last_update": "2017-01-24T21:57:13.812438Z", "content": "<p>ON</p>"}], [], [{"id": 41, "file_content": "files/formulariobolsista.doc.docx", "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 93, "name": "last"}, {"id": 94, "name": "mistake"}], "pendencies_resource": [{"id": 19, "action": "view", "begin_date": "2017-01-26T22:54:00Z", "end_date": "2017-02-10T22:54:00Z", "limit_date": null}], "groups": [], "students": [], "_my_subclass": "filelink", "name": "Secret", "slug": "secret", "brief_description": "<p>Do we create a modern myth?</p>", "show_window": true, "all_students": true, "visible": false, "order": 3, "create_date": "2017-01-24T21:55:44.193797Z", "last_update": "2017-01-24T21:55:44.330406Z"}, {"id": 46, "file_content": "files/jutificativa_voto.pdf", "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 100, "name": "just"}, {"id": 101, "name": "game"}], "pendencies_resource": [], "groups": [], "students": [{"id": 181, "log": [{"id": 759, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819337", "subject_id": 459, "timestamp_start": "1487819274", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:07:54.790064Z"}, {"id": 762, "component": "pendencies", "context": {"notification_id": 1264, "notification": "Criar Teste 2"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:09:05.305320Z"}, {"id": 205, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485470536", "category_id": 22, "timestamp_start": "1485470531"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:11.752255Z"}, {"id": 204, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485470531", "category_id": 22, "timestamp_start": "1485470530"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:10.443457Z"}, {"id": 206, "component": "topic", "context": {"topic_id": 28, "category_name": "F\u00cdSICA", "topic_slug": "topico", "subject_id": 459, "topic_name": "T\u00f3pico", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485470536", "category_id": 22, "timestamp_start": "1485470533", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:13.800455Z"}, {"id": 300, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817823"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:23.718744Z"}, {"id": 207, "component": "resources", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "webpage_slug": "runaway", "subject_slug": "acustica", "topic_id": 28, "timestamp_start": "1485470536", "topic_slug": "topico", "topic_name": "T\u00f3pico", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485470541", "webpage_id": 34, "category_id": 22, "webpage_name": "Runaway"}, "action": "view", "resource": "webpage", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:16.899890Z"}, {"id": 208, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485470541"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:21.748456Z"}, {"id": 761, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819596", "subject_id": 459, "timestamp_start": "1487819340", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:09:00.105224Z"}, {"id": 210, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-27T00:00:27.896353Z"}, {"id": 209, "component": "topic", "context": {"topic_id": 28, "category_name": "F\u00cdSICA", "topic_slug": "topico", "subject_id": 459, "topic_name": "T\u00f3pico", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485551249", "category_id": 22, "timestamp_start": "1485470542", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-26T22:42:22.309161Z"}, {"id": 763, "component": "mural", "context": {"timestamp_end": "1487819618", "timestamp_start": "1487819597"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:13:17.210969Z"}, {"id": 242, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-28T00:14:10.442184Z"}, {"id": 235, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485551258", "category_id": 22, "timestamp_start": "1485551257"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-27T21:07:37.363710Z"}, {"id": 236, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-27T21:07:46.302234Z"}, {"id": 248, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-28T00:40:09.156424Z"}, {"id": 252, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T17:03:06.179857Z"}, {"id": 254, "component": "subject", "context": {"search_for": "matem\u00e1tica"}, "action": "search", "resource": "subject/resources", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T17:32:54.742653Z"}, {"id": 255, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485800449", "category_id": 22, "timestamp_start": "1485800431"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T18:20:31.082273Z"}, {"id": 256, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T18:20:49.508637Z"}, {"id": 272, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T18:30:48.022453Z"}, {"id": 296, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T19:51:02.361646Z"}, {"id": 297, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817067", "category_id": 22, "timestamp_start": "1485817029"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T22:57:09.534154Z"}, {"id": 298, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817823", "category_id": 22, "timestamp_start": "1485817816"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:16.573429Z"}, {"id": 302, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817823"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:23.999732Z"}, {"id": 303, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.167376Z"}, {"id": 324, "component": "category", "context": {"timestamp_start": "1485976208", "category_slug": "administracao", "category_name": "ADMINISTRA\u00c7\u00c3O", "category_id": 1, "timestamp_end": "1485976214"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:10:08.328805Z"}, {"id": 304, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.321138Z"}, {"id": 313, "component": "topic", "context": {"topic_id": 28, "category_name": "F\u00cdSICA", "topic_slug": "topico", "subject_id": 459, "topic_name": "T\u00f3pico", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485817863", "category_id": 22, "timestamp_start": "1485817861", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:11:01.913755Z"}, {"id": 314, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:52:56.763660Z"}, {"id": 299, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817824", "category_id": 22, "timestamp_start": "1485817823"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:23.507849Z"}, {"id": 305, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.948644Z"}, {"id": 306, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.964254Z"}, {"id": 301, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817824", "category_id": 22, "timestamp_start": "1485817823"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:23.893312Z"}, {"id": 307, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.982882Z"}, {"id": 308, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817824"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:24.983647Z"}, {"id": 309, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485817856", "category_id": 22, "timestamp_start": "1485817825"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:25.040109Z"}, {"id": 310, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1485817856"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:56.623919Z"}, {"id": 315, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485837050", "category_id": 22, "timestamp_start": "1485837013"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T04:30:13.979178Z"}, {"id": 311, "component": "topic", "context": {"topic_id": 31, "category_name": "F\u00cdSICA", "topic_slug": "invisible", "subject_id": 459, "topic_name": "Visible", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485817860", "category_id": 22, "timestamp_start": "1485817858", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:10:58.793794Z"}, {"id": 316, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T12:47:37.896380Z"}, {"id": 312, "component": "topic", "context": {"topic_id": 29, "category_name": "F\u00cdSICA", "topic_slug": "troia", "subject_id": 459, "topic_name": "troia", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485817861", "category_id": 22, "timestamp_start": "1485817860", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-30T23:11:00.819240Z"}, {"id": 317, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T18:37:38.618881Z"}, {"id": 318, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T19:12:32.773778Z"}, {"id": 319, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-01-31T23:28:13.691378Z"}, {"id": 320, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T14:34:07.639190Z"}, {"id": 323, "component": "category", "context": {"timestamp_start": "1485974786", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1485974790"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T18:46:25.990585Z"}, {"id": 321, "component": "category", "context": {"timestamp_start": "1485974281", "category_slug": "agronomia", "category_name": "AGRONOMIA", "category_id": 2, "timestamp_end": "1485974735"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T18:38:01.194092Z"}, {"id": 322, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485974772", "category_id": 22, "timestamp_start": "1485974769"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T18:46:09.361339Z"}, {"id": 325, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485976246", "category_id": 22, "timestamp_start": "1485976245"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:10:45.062924Z"}, {"id": 326, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1485976264", "category_id": 22, "timestamp_start": "1485976246"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:10:46.849697Z"}, {"id": 327, "component": "topic", "context": {"topic_id": 31, "category_name": "F\u00cdSICA", "topic_slug": "invisible", "subject_id": 459, "topic_name": "Visible", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1485976261", "category_id": 22, "timestamp_start": "1485976260", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:11:00.675879Z"}, {"id": 328, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-01T19:11:04.309321Z"}, {"id": 767, "component": "mural", "context": {"post_id": "120"}, "action": "delete_post", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:18:20.846208Z"}, {"id": 356, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-02T17:51:57.991297Z"}, {"id": 764, "component": "mural", "context": {"timestamp_end": "1487820251", "timestamp_start": "1487819865"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:17:45.551898Z"}, {"id": 768, "component": "mural", "context": {"timestamp_end": "1487820270", "timestamp_start": "1487820251"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:24:11.371756Z"}, {"id": 770, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "83", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:25:32.108185Z"}, {"id": 500, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-05T03:49:10.189731Z"}, {"id": 498, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-04T02:16:03.713455Z"}, {"id": 506, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-06T21:52:10.915119Z"}, {"id": 514, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-08T20:24:50.861429Z"}, {"id": 586, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-13T20:03:44.925986Z"}, {"id": 1943, "component": "chat", "context": {"timestamp_end": "1491527631", "timestamp_start": "1491527509"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:49.574701Z"}, {"id": 593, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-14T15:01:30.551792Z"}, {"id": 595, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-14T21:40:49.191265Z"}, {"id": 608, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-16T10:30:44.154434Z"}, {"id": 616, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-17T00:49:36.985050Z"}, {"id": 620, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-17T23:46:37.967352Z"}, {"id": 632, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-18T02:45:09.855062Z"}, {"id": 633, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-18T03:10:14.618203Z"}, {"id": 656, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-18T16:27:53.309528Z"}, {"id": 760, "component": "pendencies", "context": {"notification_id": 1264, "notification": "Criar Teste 2"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:08:03.959137Z"}, {"id": 752, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T01:44:31.566063Z"}, {"id": 747, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487811503", "subject_id": 459, "timestamp_start": "1487811472", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T00:57:52.930523Z"}, {"id": 748, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487811515", "subject_id": 459, "timestamp_start": "1487811503", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T00:58:23.491201Z"}, {"id": 749, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487811640", "subject_id": 459, "timestamp_start": "1487811515", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T00:58:35.675991Z"}, {"id": 750, "component": "pendencies", "context": {"timestamp_start": "1487811640", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1487811667", "history_page": "2"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T01:00:40.332145Z"}, {"id": 751, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487811714", "subject_id": 459, "timestamp_start": "1487811667", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T01:01:07.531334Z"}, {"id": 755, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819072", "subject_id": 459, "timestamp_start": "1487818941", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:02:21.881897Z"}, {"id": 754, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487818941", "subject_id": 459, "timestamp_start": "1487818935", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:02:15.907517Z"}, {"id": 756, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819088", "subject_id": 459, "timestamp_start": "1487819079", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:04:39.304989Z"}, {"id": 757, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819248", "subject_id": 459, "timestamp_start": "1487819083", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:04:43.266285Z"}, {"id": 758, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487819272", "subject_id": 459, "timestamp_start": "1487819248", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:07:28.517853Z"}, {"id": 765, "component": "mural", "context": {}, "action": "create_post", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:17:54.672547Z"}, {"id": 766, "component": "mural", "context": {"post_id": "120"}, "action": "edit_post", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:18:08.851857Z"}, {"id": 769, "component": "mural", "context": {"post_id": "119"}, "action": "create_comment", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:24:21.928140Z"}, {"id": 771, "component": "mural", "context": {"category_name": "F\u00cdSICA", "post_id": "118", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:25:52.653247Z"}, {"id": 772, "component": "mural", "context": {"category_name": "F\u00cdSICA", "post_id": "91", "subject_id": 509, "category_slug": "fisica", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "category_id": 22}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:26:34.622097Z"}, {"id": 773, "component": "mural", "context": {"category_name": "F\u00cdSICA", "post_id": "91", "subject_id": 509, "category_slug": "fisica", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "category_id": 22}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:27:55.609252Z"}, {"id": 774, "component": "mural", "context": {"subject_name": "AERONOMIA", "post_id": "91", "subject_id": 509, "subject_slug": "aeronomia"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:29:02.640123Z"}, {"id": 775, "component": "mural", "context": {"subject_name": "AERONOMIA", "post_id": "91", "subject_id": 509, "subject_slug": "aeronomia"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:30:02.458851Z"}, {"id": 776, "component": "mural", "context": {"category_name": "F\u00cdSICA", "post_id": "57", "subject_id": 509, "category_slug": "fisica", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:30:24.187150Z"}, {"id": 777, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "56", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:32:05.419796Z"}, {"id": 778, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": "117", "subject_id": 459, "subject_slug": "acustica"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:32:29.703509Z"}, {"id": 779, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "56", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:32:51.016742Z"}, {"id": 780, "component": "mural", "context": {"resource_name": "Testando", "post_id": "104", "subject_id": 459, "resource_id": 47, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "testando"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:37:06.917608Z"}, {"id": 781, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": "117", "subject_id": 459, "subject_slug": "acustica"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:37:25.110939Z"}, {"id": 782, "component": "mural", "context": {"resource_name": "Testando", "post_id": "104", "subject_id": 459, "resource_id": 47, "comment_id": "64", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "testando"}, "action": "edit_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:38:55.588303Z"}, {"id": 783, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": "117", "subject_id": 459, "comment_id": "65", "subject_slug": "acustica"}, "action": "edit_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:39:11.828612Z"}, {"id": 784, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "56", "category_id": 22, "comment_id": "62"}, "action": "edit_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:39:37.546127Z"}, {"id": 786, "component": "mural", "context": {"post_id": "119", "comment_id": "51"}, "action": "edit_comment", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:39:58.143755Z"}, {"id": 785, "component": "mural", "context": {"timestamp_end": "1487821254", "timestamp_start": "1487821183"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:39:43.778697Z"}, {"id": 787, "component": "mural", "context": {"resource_name": "Testando", "post_id": "104", "subject_id": 459, "resource_id": 47, "comment_id": "64", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "testando"}, "action": "delete_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:04.684362Z"}, {"id": 788, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "56", "category_id": 22, "comment_id": "62"}, "action": "delete_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:19.841564Z"}, {"id": 789, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": "117", "subject_id": 459, "comment_id": "65", "subject_slug": "acustica"}, "action": "delete_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:32.368296Z"}, {"id": 791, "component": "mural", "context": {"post_id": "119", "comment_id": "51"}, "action": "delete_comment", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:45.087772Z"}, {"id": 790, "component": "mural", "context": {"timestamp_end": "1487821570", "timestamp_start": "1487821299"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:41:39.638918Z"}, {"id": 792, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22}, "action": "create_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:46:17.426384Z"}, {"id": 793, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": 121, "category_id": 22}, "action": "edit_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:46:36.152350Z"}, {"id": 794, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": 121, "category_id": 22}, "action": "delete_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:46:44.551370Z"}, {"id": 795, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "subject_id": 459, "subject_slug": "acustica"}, "action": "create_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:07.758060Z"}, {"id": 796, "component": "mural", "context": {"resource_name": "Found here", "subject_id": 459, "resource_id": 29, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "found-here"}, "action": "create_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:20.229336Z"}, {"id": 797, "component": "mural", "context": {"resource_name": "Found here", "post_id": 123, "subject_id": 459, "resource_id": 29, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "found-here"}, "action": "edit_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:39.066914Z"}, {"id": 798, "component": "mural", "context": {"resource_name": "Found here", "post_id": 122, "subject_id": 459, "resource_id": 29, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "found-here"}, "action": "edit_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:50.112559Z"}, {"id": 799, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "post_id": 122, "subject_id": 459, "subject_slug": "acustica"}, "action": "delete_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:51:58.543414Z"}, {"id": 800, "component": "mural", "context": {"resource_name": "Found here", "post_id": 123, "subject_id": 459, "resource_id": 29, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "found-here"}, "action": "delete_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:52:01.913353Z"}, {"id": 801, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487822069", "subject_id": 459, "timestamp_start": "1487822058", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:54:18.886887Z"}, {"id": 802, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1487822092", "category_id": 22, "timestamp_start": "1487822069"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:54:29.908068Z"}, {"id": 803, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1487822218", "category_id": 22, "timestamp_start": "1487822217"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:56:57.566068Z"}, {"id": 804, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1487822222", "category_id": 22, "timestamp_start": "1487822218"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:56:58.938426Z"}, {"id": 805, "component": "subject", "context": {"category_name": "GEOCI\u00caNCIAS", "subject_id": 509, "category_slug": "geociencias", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "timestamp_end": "1487822228", "category_id": 23, "timestamp_start": "1487822227"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:57:07.421128Z"}, {"id": 806, "component": "subject", "context": {"category_name": "GEOCI\u00caNCIAS", "subject_id": 509, "category_slug": "geociencias", "subject_name": "AERONOMIA", "subject_slug": "aeronomia", "timestamp_end": "1487822230", "category_id": 23, "timestamp_start": "1487822228"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T03:57:08.643965Z"}, {"id": 818, "component": "mural", "context": {"timestamp_end": "1487822925", "timestamp_start": "1487822922"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:08:42.820267Z"}, {"id": 820, "component": "mural", "context": {"subject_name": "AERONOMIA", "timestamp_end": "1487822950", "subject_id": 509, "timestamp_start": "1487822942", "subject_slug": "aeronomia"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:09:02.752121Z"}, {"id": 819, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487822942", "subject_id": 459, "timestamp_start": "1487822929", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:08:49.664237Z"}, {"id": 821, "component": "mural", "context": {"timestamp_start": "1487822964", "category_slug": "ecologia", "category_name": "ECONOMIA", "category_id": 12, "timestamp_end": "1487822972"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:09:24.119330Z"}, {"id": 822, "component": "mural", "context": {"timestamp_start": "1487822972", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1487822978"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:09:32.720221Z"}, {"id": 824, "component": "mural", "context": {"timestamp_start": "1487823004", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1487823011"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:10:04.914334Z"}, {"id": 823, "component": "mural", "context": {"timestamp_start": "1487823004", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1487823023"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:10:04.537879Z"}, {"id": 826, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823060", "subject_id": 459, "timestamp_start": "1487823025", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:10:25.399030Z"}, {"id": 844, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:17:08.034061Z"}, {"id": 838, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823262", "subject_id": 459, "timestamp_start": "1487823216", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:13:36.593832Z"}, {"id": 835, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823262", "subject_id": 459, "timestamp_start": "1487823200", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:13:19.973986Z"}, {"id": 837, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823262", "subject_id": 459, "timestamp_start": "1487823216", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:13:36.239900Z"}, {"id": 828, "component": "mural", "context": {"subject_name": "AERONOMIA", "timestamp_end": "1487823086", "subject_id": 509, "timestamp_start": "1487823068", "subject_slug": "aeronomia"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:11:08.658689Z"}, {"id": 825, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823133", "subject_id": 459, "timestamp_start": "1487823025", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:10:25.024652Z"}, {"id": 827, "component": "mural", "context": {"subject_name": "AERONOMIA", "timestamp_end": "1487823133", "subject_id": 509, "timestamp_start": "1487823068", "subject_slug": "aeronomia"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:11:08.283495Z"}, {"id": 829, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823133", "subject_id": 459, "timestamp_start": "1487823086", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:11:26.037229Z"}, {"id": 830, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823133", "subject_id": 459, "timestamp_start": "1487823086", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:11:26.421082Z"}, {"id": 839, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823274", "subject_id": 459, "timestamp_start": "1487823264", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:14:24.814253Z"}, {"id": 831, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823152", "subject_id": 459, "timestamp_start": "1487823138", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:12:18.915670Z"}, {"id": 832, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823152", "subject_id": 459, "timestamp_start": "1487823139", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:12:19.310937Z"}, {"id": 834, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823184", "subject_id": 459, "timestamp_start": "1487823155", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:12:35.803614Z"}, {"id": 833, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823198", "subject_id": 459, "timestamp_start": "1487823155", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:12:35.349965Z"}, {"id": 840, "component": "mural", "context": {"subject_name": "AERONOMIA", "timestamp_end": "1487823283", "subject_id": 509, "timestamp_start": "1487823279", "subject_slug": "aeronomia"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:14:39.617722Z"}, {"id": 836, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823209", "subject_id": 459, "timestamp_start": "1487823200", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:13:20.363273Z"}, {"id": 841, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1487823288", "subject_id": 459, "timestamp_start": "1487823283", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:14:43.420174Z"}, {"id": 842, "component": "mural", "context": {"timestamp_start": "1487823308", "category_slug": "ecologia", "category_name": "ECONOMIA", "category_id": 12, "timestamp_end": "1487823317"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:15:08.906391Z"}, {"id": 843, "component": "mural", "context": {"timestamp_start": "1487823317", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1487823325"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-23T04:15:17.374624Z"}, {"id": 1057, "component": "mural", "context": {"timestamp_start": "1488237433"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-02-27T23:17:13.774687Z"}, {"id": 1100, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488503911", "category_id": 22, "timestamp_start": "1488503910"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-03T01:18:30.621679Z"}, {"id": 1102, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-03T01:18:40.974286Z"}, {"id": 1101, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488503920", "category_id": 22, "timestamp_start": "1488503911"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-03T01:18:31.947009Z"}, {"id": 1107, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-03T01:47:20.608235Z"}, {"id": 1135, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488843766", "category_id": 22, "timestamp_start": "1488843765"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:42:45.788392Z"}, {"id": 1143, "component": "resources", "context": {"topic_slug": "repositorio", "subject_id": 459, "category_slug": "fisica", "goals_slug": "snuff", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 70, "timestamp_start": "1488844187", "topic_id": 30, "goals_name": "Snuff", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:49:47.208564Z"}, {"id": 1136, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488843808", "category_id": 22, "timestamp_start": "1488843766"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:42:46.977064Z"}, {"id": 1141, "component": "resources", "context": {"topic_slug": "repositorio", "subject_id": 459, "category_slug": "fisica", "goals_slug": "snuff", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 70, "timestamp_start": "1488843808", "topic_id": 30, "goals_name": "Snuff", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488843810", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:43:28.284675Z"}, {"id": 1142, "component": "resources", "context": {"topic_slug": "repositorio", "subject_id": 459, "category_slug": "fisica", "goals_slug": "snuff", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 70, "topic_id": 30, "goals_name": "Snuff", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "update", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-06T23:49:47.133749Z"}, {"id": 1144, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-07T00:10:48.186363Z"}, {"id": 1174, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488936573", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "submit", "resource": "goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:39.285570Z"}, {"id": 1170, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488936569", "category_id": 22, "timestamp_start": "1488936568"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:28.317125Z"}, {"id": 1171, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1488936573", "category_id": 22, "timestamp_start": "1488936569"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:29.784524Z"}, {"id": 1172, "component": "topic", "context": {"topic_id": 32, "category_name": "F\u00cdSICA", "topic_slug": "now-invisble", "subject_id": 459, "topic_name": "Now Invisble", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488936573", "category_id": 22, "timestamp_start": "1488936571", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:31.953040Z"}, {"id": 1173, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488936573", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488936579", "category_id": 22}, "action": "view", "resource": "goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:33.676092Z"}, {"id": 1175, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488936579", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "timestamp_end": "1488936619", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:29:39.391830Z"}, {"id": 1176, "component": "resources", "context": {"topic_slug": "now-invisble", "subject_id": 459, "category_slug": "fisica", "goals_slug": "future", "subject_slug": "acustica", "category_name": "F\u00cdSICA", "goals_id": 71, "timestamp_start": "1488936619", "topic_id": 32, "goals_name": "Future", "topic_name": "Now Invisble", "subject_name": "AC\u00daSTICA", "category_id": 22}, "action": "view", "resource": "my_goals", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T01:30:19.150112Z"}, {"id": 1181, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-08T02:45:16.171950Z"}, {"id": 1222, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-14T00:50:31.882062Z"}, {"id": 1221, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-11T01:03:34.669314Z"}, {"id": 1314, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-29T00:49:02.657364Z"}, {"id": 1316, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1490751661", "category_id": 22, "timestamp_start": "1490751658"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-29T01:40:58.604592Z"}, {"id": 1317, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1490751663"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-03-29T01:41:03.689244Z"}, {"id": 1560, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:33:22.315075Z"}, {"id": 1561, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491183816", "category_id": 22, "timestamp_start": "1491183815"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:43:35.720998Z"}, {"id": 1563, "component": "topic", "context": {"topic_id": 32, "category_name": "F\u00cdSICA", "topic_slug": "now-invisble", "subject_id": 459, "topic_name": "Now Invisble", "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "timestamp_end": "1491183825", "category_id": 22, "timestamp_start": "1491183823", "category_slug": "fisica"}, "action": "view", "resource": "topic", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:43:43.290815Z"}, {"id": 1562, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491183885", "category_id": 22, "timestamp_start": "1491183817"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:43:37.063065Z"}, {"id": 1566, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491183889", "category_id": 22, "timestamp_start": "1491183885"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-03T01:44:45.216039Z"}, {"id": 1674, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:55:42.781884Z"}, {"id": 1672, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:55:31.808049Z"}, {"id": 1677, "component": "chat", "context": {"subject_slug": "acustica", "user_email": "admin@amadeus.br", "subject_id": 459, "user_id": 1, "subject_name": "AC\u00daSTICA", "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:56:06.899904Z"}, {"id": 1673, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491353995", "subject_id": 459, "timestamp_start": "1491353740", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:55:40.507639Z"}, {"id": 1680, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:59:58.055991Z"}, {"id": 1682, "component": "chat", "context": {"subject_slug": "acustica", "user_email": "admin@amadeus.br", "subject_id": 459, "user_id": 1, "subject_name": "AC\u00daSTICA", "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:00:12.811175Z"}, {"id": 1679, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491354252", "subject_id": 459, "timestamp_start": "1491353995", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T00:59:55.874379Z"}, {"id": 1693, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_start": "1491354252", "subject_id": 459, "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:04:12.888402Z"}, {"id": 1694, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:04:14.945824Z"}, {"id": 1696, "component": "chat", "context": {"subject_slug": "acustica", "user_email": "admin@amadeus.br", "subject_id": 459, "user_id": 1, "subject_name": "AC\u00daSTICA", "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:04:25.213499Z"}, {"id": 1706, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:26:38.737881Z"}, {"id": 1708, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:30:21.138639Z"}, {"id": 1714, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:31:01.523956Z"}, {"id": 1717, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:31:14.839898Z"}, {"id": 1718, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:31:32.243590Z"}, {"id": 1724, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:31:44.849951Z"}, {"id": 1726, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:33:11.529728Z"}, {"id": 1734, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:35:43.014849Z"}, {"id": 1735, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:35:55.926115Z"}, {"id": 1739, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:37:35.890388Z"}, {"id": 1743, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:38:33.250084Z"}, {"id": 1746, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:38:49.913400Z"}, {"id": 1754, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:39:25.747552Z"}, {"id": 1759, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:39:58.020397Z"}, {"id": 1761, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:40:12.797425Z"}, {"id": 1764, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:40:49.430312Z"}, {"id": 1794, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:07:03.400068Z"}, {"id": 1784, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:42:20.280954Z"}, {"id": 1785, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:42:30.548117Z"}, {"id": 1796, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:10:35.496279Z"}, {"id": 1788, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:43:23.405407Z"}, {"id": 1789, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T01:43:30.782736Z"}, {"id": 1790, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:03:32.318245Z"}, {"id": 1791, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:03:32.413256Z"}, {"id": 1792, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:06:49.315711Z"}, {"id": 1797, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-05T02:10:45.791602Z"}, {"id": 1815, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T00:00:25.725477Z"}, {"id": 1899, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:57:15.554937Z"}, {"id": 1840, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491510614", "category_id": 22, "timestamp_start": "1491510612"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T20:30:12.828480Z"}, {"id": 1839, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T20:30:08.661590Z"}, {"id": 1841, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "category_id": 22, "timestamp_start": "1491510614"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T20:30:14.063029Z"}, {"id": 1897, "component": "chat", "context": {"timestamp_end": "1491526695", "timestamp_start": "1491526589"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:56:29.945407Z"}, {"id": 1942, "component": "chat", "context": {"timestamp_end": "1491527509", "timestamp_start": "1491527509"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:49.253164Z"}, {"id": 1900, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:57:23.165700Z"}, {"id": 1901, "component": "chat", "context": {"timestamp_end": "1491526739", "timestamp_start": "1491526695"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:58:15.786995Z"}, {"id": 1871, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T20:51:47.162180Z"}, {"id": 1891, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T21:15:48.378540Z"}, {"id": 1894, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-06T21:36:15.212908Z"}, {"id": 1896, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:56:11.860093Z"}, {"id": 1898, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:57:01.897417Z"}, {"id": 1902, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:58:18.465654Z"}, {"id": 1904, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:59:02.711508Z"}, {"id": 1915, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:00:30.323138Z"}, {"id": 1918, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:01:04.526598Z"}, {"id": 1903, "component": "chat", "context": {"timestamp_end": "1491526982", "timestamp_start": "1491526739"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T00:58:59.831863Z"}, {"id": 1929, "component": "chat", "context": {"timestamp_end": "1491526982", "timestamp_start": "1491526982"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:02.615804Z"}, {"id": 1930, "component": "chat", "context": {"timestamp_end": "1491526982", "timestamp_start": "1491526982"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:02.706737Z"}, {"id": 1932, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:05.385823Z"}, {"id": 1933, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:12.641895Z"}, {"id": 1941, "component": "chat", "context": {"timestamp_start": "1491527509"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:49.098422Z"}, {"id": 1931, "component": "chat", "context": {"timestamp_end": "1491527509", "timestamp_start": "1491526982"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:03:02.927070Z"}, {"id": 1940, "component": "chat", "context": {"timestamp_end": "1491527509", "timestamp_start": "1491527508"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:48.975144Z"}, {"id": 1944, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:11:52.348335Z"}, {"id": 1946, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:12:07.910661Z"}, {"id": 1967, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:39.219183Z"}, {"id": 1968, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:50.239122Z"}, {"id": 1953, "component": "chat", "context": {"timestamp_start": "1491527631"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:51.731589Z"}, {"id": 1952, "component": "chat", "context": {"timestamp_end": "1491527631", "timestamp_start": "1491527631"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:51.609850Z"}, {"id": 1955, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "view", "resource": "talk", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:54.065399Z"}, {"id": 1956, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador", "talk_id": 8}, "action": "send", "resource": "message", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:59.483762Z"}, {"id": 1957, "component": "chat", "context": {"timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.407929Z"}, {"id": 1958, "component": "chat", "context": {"timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.495772Z"}, {"id": 1954, "component": "chat", "context": {"timestamp_end": "1491527670", "timestamp_start": "1491527631"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:13:51.866635Z"}, {"id": 1959, "component": "chat", "context": {"timestamp_end": "1491527670", "timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.606353Z"}, {"id": 1960, "component": "chat", "context": {"timestamp_end": "1491527670", "timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.760560Z"}, {"id": 1961, "component": "chat", "context": {"timestamp_start": "1491527670"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:14:30.893797Z"}, {"id": 1971, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T01:36:10.846757Z"}, {"id": 2009, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:17:44.650595Z"}, {"id": 2010, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491603471", "subject_id": 459, "timestamp_start": "1491603469", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:17:49.021610Z"}, {"id": 2011, "component": "chat", "context": {"subject_name": "AC\u00daSTICA", "timestamp_start": "1491603471", "search_by": "", "subject_id": 459, "subject_slug": "acustica"}, "action": "view", "resource": "subject_participants", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:17:51.587148Z"}, {"id": 2012, "component": "chat", "context": {"user_email": "admin@amadeus.br", "user_id": 1, "user_name": "Administrador"}, "action": "view", "resource": "profile", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:17:53.520769Z"}, {"id": 2046, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-07T22:37:58.684059Z"}, {"id": 2148, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942929", "subject_id": 459, "timestamp_start": "1491942810", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:30.508338Z"}, {"id": 2141, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:29:50.158140Z"}, {"id": 2143, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:30:10.326303Z"}, {"id": 2144, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:30:29.252907Z"}, {"id": 2142, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942633", "subject_id": 459, "timestamp_start": "1491942597", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:29:57.251442Z"}, {"id": 2159, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944873", "subject_id": 459, "timestamp_start": "1491944688", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:04:48.914286Z"}, {"id": 2145, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942677", "subject_id": 459, "timestamp_start": "1491942633", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:30:33.297605Z"}, {"id": 2156, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:35:48.098332Z"}, {"id": 2146, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942691", "subject_id": 459, "timestamp_start": "1491942677", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:31:17.014560Z"}, {"id": 2155, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942953", "subject_id": 459, "timestamp_start": "1491942933", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:35:33.136966Z"}, {"id": 2147, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491942810", "subject_id": 459, "timestamp_start": "1491942691", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:31:31.706590Z"}, {"id": 2158, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944688", "subject_id": 459, "timestamp_start": "1491944687", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:04:47.759404Z"}, {"id": 2149, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.077376Z"}, {"id": 2150, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.088045Z"}, {"id": 2151, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.151688Z"}, {"id": 2152, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.233088Z"}, {"id": 2153, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.310043Z"}, {"id": 2154, "component": "pendencies", "context": {"notification_id": 2839, "notification": "Visualizar Alive"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:33:43.332206Z"}, {"id": 2157, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944684", "subject_id": 459, "timestamp_start": "1491942953", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T20:35:53.050266Z"}, {"id": 2160, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:07:52.577789Z"}, {"id": 2161, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944882", "subject_id": 459, "timestamp_start": "1491944881", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:08:01.246381Z"}, {"id": 2162, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491944961", "subject_id": 459, "timestamp_start": "1491944882", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:08:02.640389Z"}, {"id": 2163, "component": "pendencies", "context": {"timestamp_start": "1491944966", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491944968"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:09:26.304121Z"}, {"id": 2164, "component": "pendencies", "context": {"timestamp_start": "1491944968", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1491944974", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:09:28.662583Z"}, {"id": 2165, "component": "pendencies", "context": {"timestamp_start": "1491944974", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11/04/2017", "timestamp_end": "1491945024", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:09:34.927707Z"}, {"id": 2176, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:41:42.290483Z"}, {"id": 2166, "component": "pendencies", "context": {"timestamp_start": "1491945024", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11/04/2017", "timestamp_end": "1491945544", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:10:24.503694Z"}, {"id": 2167, "component": "pendencies", "context": {"timestamp_start": "1491945544", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11-04-2017", "timestamp_end": "1491945556", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:04.772824Z"}, {"id": 2168, "component": "pendencies", "context": {"timestamp_start": "1491945557", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11-31-2017", "timestamp_end": "1491945571", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:17.029781Z"}, {"id": 2169, "component": "pendencies", "context": {"timestamp_start": "1491945571", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "11/31/2017", "timestamp_end": "1491945577", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:31.833808Z"}, {"id": 2170, "component": "pendencies", "context": {"timestamp_start": "1491945578", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "hey", "timestamp_end": "1491945580", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:38.099706Z"}, {"id": 2171, "component": "pendencies", "context": {"timestamp_start": "1491945580", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1491945611", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:19:40.889903Z"}, {"id": 2172, "component": "pendencies", "context": {"timestamp_start": "1491945611", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "13/04/2017", "timestamp_end": "1491945804", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:20:11.893170Z"}, {"id": 2173, "component": "pendencies", "context": {"timestamp_start": "1491945804", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491945813"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:23:24.762807Z"}, {"id": 2174, "component": "pendencies", "context": {"timestamp_start": "1491945813", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1491945829", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:23:33.432888Z"}, {"id": 2175, "component": "pendencies", "context": {"subject_id": 459, "timestamp_start": "1491945830", "subject_slug": "acustica", "view_page": 1, "subject_name": "AC\u00daSTICA"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T21:23:50.005128Z"}, {"id": 2179, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:01:55.058108Z"}, {"id": 2184, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:10:12.294248Z"}, {"id": 2185, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1491948957", "subject_id": 459, "timestamp_start": "1491948954", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:15:54.043169Z"}, {"id": 2186, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491948962", "category_id": 22, "timestamp_start": "1491948957"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:15:57.853109Z"}, {"id": 2187, "component": "pendencies", "context": {"timestamp_start": "1491948962", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491948983"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:16:02.106115Z"}, {"id": 2188, "component": "pendencies", "context": {"timestamp_start": "1491948984", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491948991"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:16:24.139829Z"}, {"id": 2189, "component": "pendencies", "context": {"timestamp_start": "1491948991", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1491948994", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:16:31.732021Z"}, {"id": 2190, "component": "pendencies", "context": {"timestamp_start": "1491948994", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491948996"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:16:34.736917Z"}, {"id": 2191, "component": "pendencies", "context": {"timestamp_start": "1491949038", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1491949173"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:17:18.291869Z"}, {"id": 2192, "component": "pendencies", "context": {"subject_id": 459, "timestamp_start": "1491949173", "subject_slug": "acustica", "view_page": 1, "subject_name": "AC\u00daSTICA"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:19:33.749609Z"}, {"id": 2193, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-11T22:39:40.053706Z"}, {"id": 2199, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:21:12.724246Z"}, {"id": 2200, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492125909", "subject_id": 459, "timestamp_start": "1492125906", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:25:06.780756Z"}, {"id": 2201, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126007", "subject_id": 459, "timestamp_start": "1492125909", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:25:09.273239Z"}, {"id": 2212, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126358", "subject_id": 459, "timestamp_start": "1492126357", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:32:37.557078Z"}, {"id": 2202, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126011", "subject_id": 459, "timestamp_start": "1492126010", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:26:50.137306Z"}, {"id": 2223, "component": "pendencies", "context": {"timestamp_start": "1492126904", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492126909", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:44.272424Z"}, {"id": 2203, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126103", "subject_id": 459, "timestamp_start": "1492126011", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:26:51.234380Z"}, {"id": 2213, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126732", "subject_id": 459, "timestamp_start": "1492126358", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:32:38.624614Z"}, {"id": 2204, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126106", "subject_id": 459, "timestamp_start": "1492126105", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:28:25.440805Z"}, {"id": 2205, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126227", "subject_id": 459, "timestamp_start": "1492126106", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:28:26.670663Z"}, {"id": 2219, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126894", "subject_id": 459, "timestamp_start": "1492126799", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:39:59.389663Z"}, {"id": 2206, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126231", "subject_id": 459, "timestamp_start": "1492126230", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:30:30.572946Z"}, {"id": 2207, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126241", "subject_id": 459, "timestamp_start": "1492126231", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:30:31.791530Z"}, {"id": 2214, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126736", "subject_id": 459, "timestamp_start": "1492126735", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:38:55.254223Z"}, {"id": 2208, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126245", "subject_id": 459, "timestamp_start": "1492126244", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:30:44.238059Z"}, {"id": 2209, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126259", "subject_id": 459, "timestamp_start": "1492126245", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:30:45.283407Z"}, {"id": 2215, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126769", "subject_id": 459, "timestamp_start": "1492126736", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:38:56.550061Z"}, {"id": 2210, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126264", "subject_id": 459, "timestamp_start": "1492126263", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:31:03.689993Z"}, {"id": 2211, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126355", "subject_id": 459, "timestamp_start": "1492126264", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:31:04.890991Z"}, {"id": 2220, "component": "pendencies", "context": {"timestamp_start": "1492126897", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1492126898"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:37.180574Z"}, {"id": 2216, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126773", "subject_id": 459, "timestamp_start": "1492126772", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:39:31.963616Z"}, {"id": 2221, "component": "pendencies", "context": {"timestamp_start": "1492126898", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492126900", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:38.582164Z"}, {"id": 2217, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126795", "subject_id": 459, "timestamp_start": "1492126773", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:39:33.010223Z"}, {"id": 2218, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492126799", "subject_id": 459, "timestamp_start": "1492126798", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:39:57.983037Z"}, {"id": 2222, "component": "pendencies", "context": {"timestamp_start": "1492126900", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492126904", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:40.800195Z"}, {"id": 2224, "component": "pendencies", "context": {"timestamp_start": "1492126909", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492126944", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:41:49.645436Z"}, {"id": 2225, "component": "pendencies", "context": {"timestamp_start": "1492126944", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1492127266"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:42:24.357067Z"}, {"id": 2232, "component": "pendencies", "context": {"timestamp_start": "1492127266", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127373", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:47:46.851877Z"}, {"id": 2233, "component": "pendencies", "context": {"timestamp_start": "1492127373", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127416", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:49:33.635556Z"}, {"id": 2240, "component": "pendencies", "context": {"timestamp_start": "1492127731", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127733", "history_page": "3"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:31.133416Z"}, {"id": 2235, "component": "pendencies", "context": {"timestamp_start": "1492127541", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:52:21.431470Z"}, {"id": 2234, "component": "pendencies", "context": {"timestamp_start": "1492127416", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127555", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:50:16.367796Z"}, {"id": 2236, "component": "pendencies", "context": {"timestamp_start": "1492127555", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127593", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:52:35.212062Z"}, {"id": 2237, "component": "pendencies", "context": {"timestamp_start": "1492127593", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127649", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:53:13.432324Z"}, {"id": 2238, "component": "pendencies", "context": {"timestamp_start": "1492127649", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127728", "history_page": 1}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:54:09.524902Z"}, {"id": 2239, "component": "pendencies", "context": {"timestamp_start": "1492127728", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127731", "history_page": "2"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:28.355818Z"}, {"id": 2241, "component": "pendencies", "context": {"timestamp_start": "1492127733", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127735", "history_page": "4"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:33.684922Z"}, {"id": 2242, "component": "pendencies", "context": {"timestamp_start": "1492127735", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127737", "history_page": "5"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:35.445654Z"}, {"id": 2243, "component": "pendencies", "context": {"timestamp_start": "1492127737", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127739", "history_page": "6"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:37.251554Z"}, {"id": 2244, "component": "pendencies", "context": {"timestamp_start": "1492127739", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127742", "history_page": "7"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:39.998168Z"}, {"id": 2245, "component": "pendencies", "context": {"timestamp_start": "1492127742", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127743", "history_page": "8"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:42.133961Z"}, {"id": 2246, "component": "pendencies", "context": {"timestamp_start": "1492127743", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127745", "history_page": "9"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:43.943443Z"}, {"id": 2247, "component": "pendencies", "context": {"timestamp_start": "1492127745", "subject_id": 459, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "searched": "", "timestamp_end": "1492127756", "history_page": "10"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:45.897845Z"}, {"id": 2248, "component": "pendencies", "context": {"timestamp_start": "1492127757", "subject_id": 459, "view_page": 1, "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1492127771"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:55:57.022979Z"}, {"id": 2249, "component": "resources", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "webpage_slug": "revenge", "subject_slug": "acustica", "topic_id": 30, "timestamp_start": "1492127771", "topic_slug": "repositorio", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "timestamp_end": "1492127776", "webpage_id": 1, "category_id": 22, "webpage_name": "Revenge"}, "action": "view", "resource": "webpage", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:11.291806Z"}, {"id": 2250, "component": "mural", "context": {"timestamp_start": "1492127776", "resource_name": "Revenge", "subject_id": 459, "resource_id": 1, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "revenge", "timestamp_end": "1492127779"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:16.753307Z"}, {"id": 2251, "component": "resources", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "webpage_slug": "revenge", "subject_slug": "acustica", "topic_id": 30, "timestamp_start": "1492127779", "topic_slug": "repositorio", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "timestamp_end": "1492127780", "webpage_id": 1, "category_id": 22, "webpage_name": "Revenge"}, "action": "view", "resource": "webpage", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:19.499351Z"}, {"id": 2252, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1492127783", "category_id": 22, "timestamp_start": "1492127780"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:20.859941Z"}, {"id": 2253, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492127788", "subject_id": 459, "timestamp_start": "1492127785", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:25.169011Z"}, {"id": 2255, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-14T00:21:41.686250Z"}, {"id": 2259, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-15T00:51:14.061387Z"}, {"id": 2254, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492217474", "subject_id": 459, "timestamp_start": "1492127788", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-13T23:56:28.959612Z"}, {"id": 2260, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492217494", "subject_id": 459, "timestamp_start": "1492217480", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-15T00:51:19.995842Z"}, {"id": 2586, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-26T01:36:33.745524Z"}, {"id": 2262, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-15T01:16:47.696572Z"}, {"id": 2261, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492995562", "subject_id": 459, "timestamp_start": "1492217494", "subject_slug": "acustica"}, "action": "view_history", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-15T00:51:34.056885Z"}, {"id": 2372, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T00:59:21.981258Z"}, {"id": 2373, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1492995610", "subject_id": 459, "timestamp_start": "1492995567", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T00:59:27.281209Z"}, {"id": 2382, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032945", "subject_id": 459, "timestamp_start": "1493032865", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:21:05.272760Z"}, {"id": 2375, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T01:20:18.161716Z"}, {"id": 2377, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:12:26.191980Z"}, {"id": 2374, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032346", "subject_id": 459, "timestamp_start": "1492995613", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T01:00:13.607041Z"}, {"id": 2380, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032682", "subject_id": 459, "timestamp_start": "1493032591", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:16:31.039008Z"}, {"id": 2378, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032468", "subject_id": 459, "timestamp_start": "1493032349", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:12:29.644103Z"}, {"id": 2379, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032588", "subject_id": 459, "timestamp_start": "1493032471", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:14:31.716757Z"}, {"id": 2381, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032862", "subject_id": 459, "timestamp_start": "1493032685", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:18:05.403084Z"}, {"id": 2385, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493032969", "subject_id": 459, "timestamp_start": "1493032948", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:22:28.461096Z"}, {"id": 2383, "component": "pendencies", "context": {}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:21:16.252767Z"}, {"id": 2384, "component": "pendencies", "context": {"notification_id": 3237, "notification": "Visualizar System"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:21:19.653812Z"}, {"id": 2387, "component": "pendencies", "context": {"notification_id": 3237, "notification": "Visualizar System"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:22:56.726714Z"}, {"id": 2386, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033066", "subject_id": 459, "timestamp_start": "1493032972", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:22:52.192138Z"}, {"id": 2388, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033080", "subject_id": 459, "timestamp_start": "1493033069", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:24:29.447632Z"}, {"id": 2389, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033136", "subject_id": 459, "timestamp_start": "1493033082", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:24:42.549281Z"}, {"id": 2401, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033725", "subject_id": 459, "timestamp_start": "1493033723", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:35:23.153863Z"}, {"id": 2391, "component": "pendencies", "context": {"notification_id": 3237, "notification": "Visualizar System"}, "action": "set_goal", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:25:49.616646Z"}, {"id": 2390, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033184", "subject_id": 459, "timestamp_start": "1493033138", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:25:38.898596Z"}, {"id": 2402, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T12:10:29.965789Z"}, {"id": 2392, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033678", "subject_id": 459, "timestamp_start": "1493033187", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:26:27.067783Z"}, {"id": 2393, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033683", "subject_id": 459, "timestamp_start": "1493033680", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:40.778746Z"}, {"id": 2394, "component": "resources", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "webpage_slug": "angels-calling", "subject_slug": "acustica", "topic_id": 30, "timestamp_start": "1493033683", "topic_slug": "repositorio", "topic_name": "Reposit\u00f3rio", "subject_name": "AC\u00daSTICA", "timestamp_end": "1493033692", "webpage_id": 68, "category_id": 22, "webpage_name": "Angels calling"}, "action": "view", "resource": "webpage", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:43.787750Z"}, {"id": 2395, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033692", "subject_id": 459, "timestamp_start": "1493033688", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:48.345307Z"}, {"id": 2396, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1493033705", "category_id": 22, "timestamp_start": "1493033692"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:52.339304Z"}, {"id": 2397, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033705", "subject_id": 459, "timestamp_start": "1493033700", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:34:59.986089Z"}, {"id": 2398, "component": "subject", "context": {"category_name": "F\u00cdSICA", "subject_id": 459, "category_slug": "fisica", "subject_name": "AC\u00daSTICA", "subject_slug": "acustica", "timestamp_end": "1493033713", "category_id": 22, "timestamp_start": "1493033705"}, "action": "access", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:35:05.066338Z"}, {"id": 2399, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1493033713", "subject_id": 459, "timestamp_start": "1493033711", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:35:11.051070Z"}, {"id": 2400, "component": "category", "context": {"timestamp_start": "1493033716", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1493033725"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-04-24T11:35:16.652183Z"}, {"id": 2557, "component": "user", "context": {}, "action": "access", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:08:11.603340Z"}, {"id": 2558, "component": "mural", "context": {"timestamp_end": "1495573702", "timestamp_start": "1495573699"}, "action": "view", "resource": "general", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:08:19.229099Z"}, {"id": 2560, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22}, "action": "create_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:08:39.168190Z"}, {"id": 2559, "component": "mural", "context": {"timestamp_start": "1495573709", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1495574216"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:08:29.012379Z"}, {"id": 2562, "component": "mural", "context": {"category_slug": "artes", "category_name": "ARTES", "category_id": 6}, "action": "create_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:17:11.351727Z"}, {"id": 2561, "component": "mural", "context": {"timestamp_start": "1495574219", "category_slug": "artes", "category_name": "ARTES", "category_id": 6, "timestamp_end": "1495574237"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:16:59.492679Z"}, {"id": 2564, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22}, "action": "create_post", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:17:30.479031Z"}, {"id": 2565, "component": "mural", "context": {"category_slug": "fisica", "category_name": "F\u00cdSICA", "post_id": "128", "category_id": 22}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:30:13.435109Z"}, {"id": 2563, "component": "mural", "context": {"timestamp_start": "1495574237", "category_slug": "fisica", "category_name": "F\u00cdSICA", "category_id": 22, "timestamp_end": "1495575021"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:17:17.902158Z"}, {"id": 2567, "component": "mural", "context": {"category_slug": "ecologia", "category_name": "ECONOMIA", "post_id": "62", "category_id": 12}, "action": "create_comment", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:30:30.236424Z"}, {"id": 2566, "component": "mural", "context": {"timestamp_start": "1495575021", "category_slug": "ecologia", "category_name": "ECONOMIA", "category_id": 12, "timestamp_end": "1495575095"}, "action": "view", "resource": "category", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:30:21.372430Z"}, {"id": 2577, "component": "mural", "context": {"resource_name": "Revenge", "post_id": "124", "subject_id": 459, "resource_id": 1, "subject_slug": "acustica", "subject_name": "AC\u00daSTICA", "resource_slug": "revenge"}, "action": "create_comment", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:37:43.750379Z"}, {"id": 2576, "component": "mural", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1495575478", "subject_id": 459, "timestamp_start": "1495575454", "subject_slug": "acustica"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:37:34.193592Z"}, {"id": 2575, "component": "mural", "context": {"subject_name": "CRIA\u00c7\u00c3O DE ANIMAIS", "subject_id": 790, "subject_slug": "criacao-de-animais"}, "action": "create_post", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:37:23.764808Z"}, {"id": 2574, "component": "mural", "context": {"subject_name": "CRIA\u00c7\u00c3O DE ANIMAIS", "timestamp_end": "1495575453", "subject_id": 790, "timestamp_start": "1495575434", "subject_slug": "criacao-de-animais"}, "action": "view", "resource": "subject", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-23T21:37:14.769228Z"}, {"id": 2587, "component": "pendencies", "context": {"subject_name": "AC\u00daSTICA", "timestamp_end": "1495762614", "subject_id": 459, "timestamp_start": "1495762601", "subject_slug": "acustica"}, "action": "view", "resource": "pendencies", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-26T01:36:41.713465Z"}, {"id": 2588, "component": "user", "context": {}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-26T01:36:54.476891Z"}, {"id": 2636, "component": "user", "context": {"condition": "session_expire"}, "action": "logout", "resource": "system", "user": "Estudante 180", "user_id": 181, "user_email": "e180@amadeus.br", "datetime": "2017-05-26T02:27:25.484603Z"}], "password": "pbkdf2_sha256$30000$5gbyp9Al3C2n$rroJzhQWFLetSzLJto5kyVC4z2hycFSWhH8uq3lhazI=", "last_login": "2017-05-26T01:36:33.649932Z", "is_superuser": false, "email": "e180@amadeus.br", "username": "e", "last_name": "180", "social_name": "Estudante 180", "description": "<p>Estudante da Universidade Federal do Vale do S\u00e3o Francisco - <b>UNIVASF</b>.</p>", "image": "/uploads/users/hqdefault.jpg", "date_created": "2017-01-01T03:00:00Z", "last_update": "2017-02-06T18:58:16.633761Z", "show_email": 1, "is_staff": false, "is_active": true, "groups": [], "user_permissions": []}], "_my_subclass": "filelink", "name": "Personal", "slug": "personal", "brief_description": "<p>Pray All I can do</p><p>Taskani</p>", "show_window": false, "all_students": false, "visible": false, "order": 6, "create_date": "2017-01-25T02:21:38.618190Z", "last_update": "2017-01-25T02:24:26.061727Z"}], [], [], [{"id": 71, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 123, "name": "wastelands"}, {"id": 124, "name": "disapear"}], "item_goal": [{"id": 6, "description": "Wastelands", "ref_value": 50, "order": 1}, {"id": 7, "description": "Arms with no weapons", "ref_value": 55, "order": 2}], "pendencies_resource": [{"id": 34, "action": "submit", "begin_date": "2017-03-07T20:10:00Z", "end_date": "2017-03-08T20:10:00Z", "limit_date": "2017-03-10T19:10:00Z"}], "groups": [], "students": [], "_my_subclass": "goals", "name": "Future", "slug": "future", "brief_description": "", "show_window": false, "all_students": true, "visible": true, "order": 6, "create_date": "2017-03-06T20:11:11.156470Z", "last_update": "2017-03-08T01:29:03.155215Z", "presentation": "<p>Stands away</p>", "limit_submission_date": "2017-03-11T20:10:00Z"}]] | |
| 2 | 1 | \ No newline at end of file |
| 2 | +[[{"id": 244, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 132, "name": "for"}], "pendencies_resource": [], "indicators": "bulletin/indicators/modelo_indicadores_relevantes_1.xls", "file_content": "bulletin/goals/future_a2WWa1X.xls", "_my_subclass": "bulletin", "name": "Left to lose", "slug": "left-to-lose", "brief_description": "<p>New</p>", "show_window": true, "all_students": true, "visible": true, "order": 7, "create_date": "2017-08-05T15:06:49.032110Z", "last_update": "2017-09-02T18:25:26.429883Z", "content": "<p>Lost </p>"}], [{"id": 6, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 48, "name": "anything"}, {"id": 49, "name": "lsoe"}], "pendencies_resource": [], "_my_subclass": "webpage", "name": "Doug", "slug": "doug", "brief_description": "<p>Today</p>", "show_window": true, "all_students": false, "visible": false, "order": 1, "create_date": "2017-01-23T17:36:14.900287Z", "last_update": "2017-01-24T17:33:39.433016Z", "content": "Freaky man"}, {"id": 20, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 69, "name": "noine"}, {"id": 70, "name": "nine"}], "pendencies_resource": [], "_my_subclass": "webpage", "name": "Myself", "slug": "myself", "brief_description": "<p>Is up to me</p>", "show_window": false, "all_students": true, "visible": false, "order": 2, "create_date": "2017-01-23T22:59:42.592301Z", "last_update": "2017-01-24T17:34:20.147284Z", "content": "<title>Sold my soul</title><h5>I brought this all <em>upon myself<br>Dont stop me now!!</em></h5>"}, {"id": 42, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 95, "name": "history"}], "pendencies_resource": [], "_my_subclass": "webpage", "name": "History goes", "slug": "history-goes", "brief_description": "<p>How</p>", "show_window": false, "all_students": false, "visible": false, "order": 4, "create_date": "2017-01-24T21:57:13.600718Z", "last_update": "2017-01-24T21:57:13.812438Z", "content": "<p>ON</p>"}, {"id": 246, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 133, "name": "peace"}], "pendencies_resource": [], "_my_subclass": "webpage", "name": "Mama", "slug": "mama", "brief_description": "", "show_window": true, "all_students": false, "visible": true, "order": 8, "create_date": "2017-08-28T23:29:41.911603Z", "last_update": "2017-08-28T23:29:42.174255Z", "content": "<p>find out where you've been</p>"}], [{"id": 41, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 93, "name": "last"}, {"id": 94, "name": "mistake"}], "pendencies_resource": [{"id": 19, "action": "view", "begin_date": "2017-01-26T22:54:00Z", "end_date": "2017-02-10T22:54:00Z", "limit_date": null}], "file_content": "files/formulariobolsista.doc.docx", "_my_subclass": "filelink", "name": "Secret", "slug": "secret", "brief_description": "<p>Do we create a modern myth?</p>", "show_window": true, "all_students": true, "visible": false, "order": 3, "create_date": "2017-01-24T21:55:44.193797Z", "last_update": "2017-01-24T21:55:44.330406Z"}, {"id": 46, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 100, "name": "just"}, {"id": 101, "name": "game"}], "pendencies_resource": [], "file_content": "files/jutificativa_voto.pdf", "_my_subclass": "filelink", "name": "Personal", "slug": "personal", "brief_description": "<p>Pray All I can do</p><p>Taskani</p>", "show_window": false, "all_students": false, "visible": false, "order": 6, "create_date": "2017-01-25T02:21:38.618190Z", "last_update": "2017-01-25T02:24:26.061727Z"}, {"id": 247, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 130, "name": ""}], "pendencies_resource": [], "file_content": "files/formulariobolsista.docx", "_my_subclass": "filelink", "name": "Starships", "slug": "starships", "brief_description": "", "show_window": false, "all_students": false, "visible": true, "order": 9, "create_date": "2017-09-01T03:15:21.199226Z", "last_update": "2017-09-01T03:15:22.217754Z"}], [{"id": 71, "topic": {"id": 32, "name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "order": 2, "create_date": "2017-01-17T18:44:24.976186Z", "last_update": "2017-03-08T01:28:52.845818Z"}, "tags": [{"id": 123, "name": "wastelands"}, {"id": 124, "name": "disapear"}], "item_goal": [{"id": 6, "description": "Wastelands", "ref_value": 50, "order": 1}, {"id": 7, "description": "Arms with no weapons", "ref_value": 55, "order": 2}], "pendencies_resource": [{"id": 34, "action": "submit", "begin_date": "2017-03-07T20:10:00Z", "end_date": "2017-03-08T20:10:00Z", "limit_date": "2017-03-10T19:10:00Z"}], "_my_subclass": "goals", "name": "Future", "slug": "future", "brief_description": "", "show_window": false, "all_students": true, "visible": true, "order": 6, "create_date": "2017-03-06T20:11:11.156470Z", "last_update": "2017-08-04T14:30:58.202411Z", "presentation": "<p>Stands away</p>", "limit_submission_date": "2017-08-04T00:10:00Z"}]] | |
| 3 | 3 | \ No newline at end of file | ... | ... |
bulletin/forms.py
| ... | ... | @@ -39,6 +39,8 @@ class BulletinForm(forms.ModelForm): |
| 39 | 39 | widgets = { |
| 40 | 40 | 'content': forms.Textarea, |
| 41 | 41 | 'brief_description': forms.Textarea, |
| 42 | + 'file_content': ResubmitFileWidget(attrs={'accept':'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel,application/vnd.oasis.opendocument.spreadsheet,text/csv'}), | |
| 43 | + 'indicators': ResubmitFileWidget(attrs={'accept':'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel,application/vnd.oasis.opendocument.spreadsheet,text/csv'}), | |
| 42 | 44 | } |
| 43 | 45 | |
| 44 | 46 | def clean_name(self): | ... | ... |
bulletin/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| ... | ... | @@ -30,23 +30,25 @@ msgstr "Nome do boletim" |
| 30 | 30 | msgid "Bulletin content" |
| 31 | 31 | msgstr "Apresentação do boletim" |
| 32 | 32 | |
| 33 | -#: bulletin/forms.py:56 | |
| 33 | +#: bulletin/forms.py:58 | |
| 34 | 34 | msgid "This subject already has a bulletin with this name" |
| 35 | 35 | msgstr "Este assunto já possui um boletim com este nome" |
| 36 | 36 | |
| 37 | -#: bulletin/forms.py:69 bulletin/forms.py:86 | |
| 37 | +#: bulletin/forms.py:71 bulletin/forms.py:88 | |
| 38 | +#: bulletin/templates/bulletin/_form.html:98 | |
| 39 | +#: bulletin/templates/bulletin/_form.html:151 | |
| 38 | 40 | msgid "The file is too large. It should have less than 1MB." |
| 39 | 41 | msgstr "O arquivo é muito grande. Ele deve ter menos que 1MB." |
| 40 | 42 | |
| 41 | -#: bulletin/forms.py:74 bulletin/forms.py:91 bulletin/forms.py:137 | |
| 43 | +#: bulletin/forms.py:76 bulletin/forms.py:93 bulletin/forms.py:139 | |
| 42 | 44 | msgid "This field is required." |
| 43 | 45 | msgstr "Este campo é obrigatório." |
| 44 | 46 | |
| 45 | -#: bulletin/forms.py:129 | |
| 47 | +#: bulletin/forms.py:131 | |
| 46 | 48 | msgid "Message" |
| 47 | 49 | msgstr "Mensagem" |
| 48 | 50 | |
| 49 | -#: bulletin/forms.py:149 | |
| 51 | +#: bulletin/forms.py:151 | |
| 50 | 52 | msgid "The image is too large. It should have less than 5MB." |
| 51 | 53 | msgstr "A imagem é muito grande. Ela deve ter menos que 5MB." |
| 52 | 54 | |
| ... | ... | @@ -70,7 +72,7 @@ msgstr "Metas" |
| 70 | 72 | msgid "Relevant Indicators" |
| 71 | 73 | msgstr "Indicadores Relevantes" |
| 72 | 74 | |
| 73 | -#: bulletin/models.py:25 bulletin/views.py:883 | |
| 75 | +#: bulletin/models.py:25 bulletin/views.py:934 | |
| 74 | 76 | msgid "Bulletin" |
| 75 | 77 | msgstr "Boletim" |
| 76 | 78 | |
| ... | ... | @@ -87,7 +89,7 @@ msgid "Click to download a xls file with the data of the goals" |
| 87 | 89 | msgstr "Clique para baixar um arquivo xls com os dados das metas" |
| 88 | 90 | |
| 89 | 91 | #: bulletin/templates/bulletin/_form.html:55 |
| 90 | -#: bulletin/templates/bulletin/_form.html:96 | |
| 92 | +#: bulletin/templates/bulletin/_form.html:109 | |
| 91 | 93 | msgid "Choose your file..." |
| 92 | 94 | msgstr "Escolha seu arquivo..." |
| 93 | 95 | |
| ... | ... | @@ -96,35 +98,40 @@ msgid "Click or drop the .xls file with the goals data" |
| 96 | 98 | msgstr "Selecione ou solte o arquivo .xls com os dados das metas" |
| 97 | 99 | |
| 98 | 100 | #: bulletin/templates/bulletin/_form.html:71 |
| 99 | -#: bulletin/templates/bulletin/_form.html:112 | |
| 101 | +#: bulletin/templates/bulletin/_form.html:125 | |
| 100 | 102 | msgid "The file could not exceed 1MB." |
| 101 | 103 | msgstr "O arquivo não pode exceder 1MB." |
| 102 | 104 | |
| 103 | -#: bulletin/templates/bulletin/_form.html:110 | |
| 105 | +#: bulletin/templates/bulletin/_form.html:99 | |
| 106 | +#: bulletin/templates/bulletin/_form.html:152 | |
| 107 | +msgid "File not supported." | |
| 108 | +msgstr "" | |
| 109 | + | |
| 110 | +#: bulletin/templates/bulletin/_form.html:123 | |
| 104 | 111 | msgid "Click or drop the .xls file with the indicators data" |
| 105 | 112 | msgstr "Selecione ou solte o arquivo .xls com a informação dos indicadores" |
| 106 | 113 | |
| 107 | -#: bulletin/templates/bulletin/_form.html:132 | |
| 114 | +#: bulletin/templates/bulletin/_form.html:156 | |
| 108 | 115 | msgid "Common resources settings" |
| 109 | 116 | msgstr "Configurações comuns dos recursos" |
| 110 | 117 | |
| 111 | -#: bulletin/templates/bulletin/_form.html:182 | |
| 118 | +#: bulletin/templates/bulletin/_form.html:206 | |
| 112 | 119 | msgid "Pendencies Notifications" |
| 113 | 120 | msgstr "Notificação de pendências" |
| 114 | 121 | |
| 115 | -#: bulletin/templates/bulletin/_form.html:198 | |
| 122 | +#: bulletin/templates/bulletin/_form.html:222 | |
| 116 | 123 | msgid "Action not performed by the user" |
| 117 | 124 | msgstr "Ação não realizada pelo usuário" |
| 118 | 125 | |
| 119 | -#: bulletin/templates/bulletin/_form.html:224 | |
| 126 | +#: bulletin/templates/bulletin/_form.html:248 | |
| 120 | 127 | msgid "Wished period" |
| 121 | 128 | msgstr "Período desejado" |
| 122 | 129 | |
| 123 | -#: bulletin/templates/bulletin/_form.html:335 | |
| 130 | +#: bulletin/templates/bulletin/_form.html:359 | |
| 124 | 131 | msgid "Save" |
| 125 | 132 | msgstr "Salvar" |
| 126 | 133 | |
| 127 | -#: bulletin/templates/bulletin/create.html:20 bulletin/views.py:454 | |
| 134 | +#: bulletin/templates/bulletin/create.html:20 bulletin/views.py:503 | |
| 128 | 135 | msgid "Create Bulletin" |
| 129 | 136 | msgstr "Criar boletim" |
| 130 | 137 | |
| ... | ... | @@ -189,14 +196,14 @@ msgid "The picture could not exceed 5MB." |
| 189 | 196 | msgstr "A imagem não pode exceder 5MB." |
| 190 | 197 | |
| 191 | 198 | #: bulletin/templates/bulletin/send_message.html:62 |
| 192 | -#: bulletin/templates/bulletin/view.html:223 | |
| 193 | -#: bulletin/templates/bulletin/window_view.html:234 | |
| 199 | +#: bulletin/templates/bulletin/view.html:235 | |
| 200 | +#: bulletin/templates/bulletin/window_view.html:257 | |
| 194 | 201 | msgid "Close" |
| 195 | 202 | msgstr "Fechar" |
| 196 | 203 | |
| 197 | 204 | #: bulletin/templates/bulletin/send_message.html:63 |
| 198 | -#: bulletin/templates/bulletin/view.html:224 | |
| 199 | -#: bulletin/templates/bulletin/window_view.html:235 | |
| 205 | +#: bulletin/templates/bulletin/view.html:236 | |
| 206 | +#: bulletin/templates/bulletin/window_view.html:258 | |
| 200 | 207 | msgid "Send" |
| 201 | 208 | msgstr "Enviar" |
| 202 | 209 | |
| ... | ... | @@ -204,50 +211,55 @@ msgstr "Enviar" |
| 204 | 211 | msgid "Edit: " |
| 205 | 212 | msgstr "Editar: " |
| 206 | 213 | |
| 207 | -#: bulletin/templates/bulletin/view.html:203 | |
| 208 | -#: bulletin/templates/bulletin/window_view.html:214 | |
| 214 | +#: bulletin/templates/bulletin/view.html:215 | |
| 215 | +#: bulletin/templates/bulletin/window_view.html:237 | |
| 209 | 216 | msgid "There are obstructions to your activities?" |
| 210 | 217 | msgstr "Existem impedimentos para as suas atividades?" |
| 211 | 218 | |
| 212 | -#: bulletin/templates/bulletin/view.html:204 | |
| 213 | -#: bulletin/templates/bulletin/window_view.html:215 | |
| 219 | +#: bulletin/templates/bulletin/view.html:216 | |
| 220 | +#: bulletin/templates/bulletin/window_view.html:238 | |
| 214 | 221 | msgid "Click here" |
| 215 | 222 | msgstr "Clique aqui" |
| 216 | 223 | |
| 217 | -#: bulletin/templates/bulletin/view.html:204 | |
| 218 | -#: bulletin/templates/bulletin/window_view.html:215 | |
| 224 | +#: bulletin/templates/bulletin/view.html:216 | |
| 225 | +#: bulletin/templates/bulletin/window_view.html:238 | |
| 219 | 226 | msgid "to communicate the difficulties that may decrease your performance." |
| 220 | 227 | msgstr "para informar as dificuldades que podem prejudicar seu desempenho." |
| 221 | 228 | |
| 222 | -#: bulletin/templates/bulletin/view.html:219 | |
| 223 | -#: bulletin/templates/bulletin/window_view.html:230 | |
| 229 | +#: bulletin/templates/bulletin/view.html:231 | |
| 230 | +#: bulletin/templates/bulletin/window_view.html:253 | |
| 224 | 231 | msgid "Type here the dificulties that may harm your performance" |
| 225 | 232 | msgstr "Escreva aqui as dificuldades que podem diminuir sua performance" |
| 226 | 233 | |
| 227 | -#: bulletin/utils.py:50 bulletin/views.py:950 | |
| 234 | +#: bulletin/utils.py:47 bulletin/views.py:1021 | |
| 228 | 235 | #, python-format |
| 229 | 236 | msgid "Last message in %s" |
| 230 | 237 | msgstr "Última mensagem em %s" |
| 231 | 238 | |
| 232 | -#: bulletin/views.py:84 bulletin/views.py:227 | |
| 239 | +#: bulletin/views.py:87 | |
| 233 | 240 | #, python-format |
| 234 | -msgid "#Dificulty(ies) found in %s" | |
| 241 | +msgid "#Difficulty(ies) found in %s" | |
| 235 | 242 | msgstr "#Dificuldade(s) encontrada(s) em %s" |
| 236 | 243 | |
| 237 | -#: bulletin/views.py:88 bulletin/views.py:231 | |
| 244 | +#: bulletin/views.py:113 bulletin/views.py:280 | |
| 238 | 245 | msgid "Difficulties sent to the subject professor(s)" |
| 239 | 246 | msgstr "Dificuldades enviadas para o(s) professor(es) do assunto" |
| 240 | 247 | |
| 241 | -#: bulletin/views.py:91 bulletin/views.py:234 | |
| 248 | +#: bulletin/views.py:117 bulletin/views.py:283 | |
| 242 | 249 | msgid "You should inform some difficulty" |
| 243 | 250 | msgstr "Você deve informar alguma dificuldade" |
| 244 | 251 | |
| 245 | -#: bulletin/views.py:351 | |
| 252 | +#: bulletin/views.py:254 | |
| 253 | +#, python-format | |
| 254 | +msgid "#Dificulty(ies) found in %s" | |
| 255 | +msgstr "#Dificuldade(s) encontrada(s) em %s" | |
| 256 | + | |
| 257 | +#: bulletin/views.py:400 | |
| 246 | 258 | #, python-format |
| 247 | 259 | msgid "The topic %s has no goals, so you can't create a Bulletin." |
| 248 | 260 | msgstr "O tópico %s não possui metas, então você não pode criar um Boletim." |
| 249 | 261 | |
| 250 | -#: bulletin/views.py:358 | |
| 262 | +#: bulletin/views.py:407 | |
| 251 | 263 | #, python-format |
| 252 | 264 | msgid "" |
| 253 | 265 | "The deadline to submit the goals of the topic %s has not yet closed, so you " |
| ... | ... | @@ -256,17 +268,17 @@ msgstr "" |
| 256 | 268 | "O prazo para submeter as metas do tópico %s ainda não foi fechado, então " |
| 257 | 269 | "você não pode criar um Boletim." |
| 258 | 270 | |
| 259 | -#: bulletin/views.py:363 | |
| 271 | +#: bulletin/views.py:412 | |
| 260 | 272 | #, python-format |
| 261 | 273 | msgid "The topic %s already has a Bulletin, so you can't create another." |
| 262 | 274 | msgstr "O tópico %s já possui um Boletim, então você não pode criar outro." |
| 263 | 275 | |
| 264 | -#: bulletin/views.py:381 bulletin/views.py:394 bulletin/views.py:663 | |
| 265 | -#: bulletin/views.py:665 bulletin/views.py:681 bulletin/views.py:683 | |
| 276 | +#: bulletin/views.py:430 bulletin/views.py:443 bulletin/views.py:713 | |
| 277 | +#: bulletin/views.py:715 bulletin/views.py:731 bulletin/views.py:733 | |
| 266 | 278 | msgid "Visualize" |
| 267 | 279 | msgstr "Visualizar" |
| 268 | 280 | |
| 269 | -#: bulletin/views.py:474 | |
| 281 | +#: bulletin/views.py:524 | |
| 270 | 282 | #, python-format |
| 271 | 283 | msgid "" |
| 272 | 284 | "The Bulletin \"%s\" was added to the Topic \"%s\" of the virtual environment " |
| ... | ... | @@ -275,58 +287,58 @@ msgstr "" |
| 275 | 287 | "O Boletim \"%s\" foi adicionado ao Tópio \"%s\" do ambiente virtual \"%s\" " |
| 276 | 288 | "com sucesso!" |
| 277 | 289 | |
| 278 | -#: bulletin/views.py:727 | |
| 290 | +#: bulletin/views.py:777 | |
| 279 | 291 | msgid "Update Bulletin" |
| 280 | 292 | msgstr "Atualizar boletim" |
| 281 | 293 | |
| 282 | -#: bulletin/views.py:745 | |
| 294 | +#: bulletin/views.py:796 | |
| 283 | 295 | #, python-format |
| 284 | 296 | msgid "The Bulletin \"%s\" was updated successfully!" |
| 285 | 297 | msgstr "O Boletim \"%s\" foi atualizado com sucesso!" |
| 286 | 298 | |
| 287 | -#: bulletin/views.py:781 | |
| 299 | +#: bulletin/views.py:832 | |
| 288 | 300 | #, python-format |
| 289 | 301 | msgid "" |
| 290 | 302 | "The bulletin \"%s\" was removed successfully from virtual environment \"%s\"!" |
| 291 | 303 | msgstr "O boletim \"%s\" foi removido com sucesso do ambiente virtual \"%s\"! " |
| 292 | 304 | |
| 293 | -#: bulletin/views.py:840 | |
| 305 | +#: bulletin/views.py:891 | |
| 294 | 306 | msgid "Bulletin Reports" |
| 295 | 307 | msgstr "Relatórios do Boletim" |
| 296 | 308 | |
| 297 | -#: bulletin/views.py:859 | |
| 309 | +#: bulletin/views.py:910 | |
| 298 | 310 | msgid "Realized" |
| 299 | 311 | msgstr "Realizada" |
| 300 | 312 | |
| 301 | -#: bulletin/views.py:859 | |
| 313 | +#: bulletin/views.py:910 | |
| 302 | 314 | msgid "Unrealized" |
| 303 | 315 | msgstr "Não realizada" |
| 304 | 316 | |
| 305 | -#: bulletin/views.py:859 | |
| 317 | +#: bulletin/views.py:910 | |
| 306 | 318 | msgid "Historic" |
| 307 | 319 | msgstr "Histórico" |
| 308 | 320 | |
| 309 | -#: bulletin/views.py:874 bulletin/views.py:882 | |
| 321 | +#: bulletin/views.py:925 bulletin/views.py:933 | |
| 310 | 322 | msgid "View" |
| 311 | 323 | msgstr "Visualizar" |
| 312 | 324 | |
| 313 | -#: bulletin/views.py:888 | |
| 325 | +#: bulletin/views.py:939 | |
| 314 | 326 | msgid "Actions about resource" |
| 315 | 327 | msgstr "Ações sobre o recurso" |
| 316 | 328 | |
| 317 | -#: bulletin/views.py:889 | |
| 329 | +#: bulletin/views.py:940 | |
| 318 | 330 | msgid "Quantity" |
| 319 | 331 | msgstr "Quantidade" |
| 320 | 332 | |
| 321 | -#: bulletin/views.py:938 | |
| 333 | +#: bulletin/views.py:1009 | |
| 322 | 334 | msgid "[Photo]" |
| 323 | 335 | msgstr "[Foto]" |
| 324 | 336 | |
| 325 | -#: bulletin/views.py:959 | |
| 337 | +#: bulletin/views.py:1030 | |
| 326 | 338 | msgid "The message was successfull sent!" |
| 327 | 339 | msgstr "A mensagem foi enviada com sucesso!" |
| 328 | 340 | |
| 329 | -#: bulletin/views.py:961 | |
| 341 | +#: bulletin/views.py:1032 | |
| 330 | 342 | msgid "No user selected!" |
| 331 | 343 | msgstr "Nenhum usuário selecionado!" |
| 332 | 344 | ... | ... |
bulletin/models.py
| ... | ... | @@ -6,12 +6,12 @@ from django.core.urlresolvers import reverse_lazy |
| 6 | 6 | |
| 7 | 7 | from topics.models import Resource |
| 8 | 8 | |
| 9 | -def validate_file_extension(value): | |
| 10 | - valid_formats = [ | |
| 11 | - 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', | |
| 12 | - 'application/vnd.ms-excel','application/vnd.oasis.opendocument.spreadsheet','text/csv' | |
| 13 | - ] | |
| 9 | +valid_formats = [ | |
| 10 | + 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', | |
| 11 | + 'application/vnd.ms-excel','application/vnd.oasis.opendocument.spreadsheet','text/csv' | |
| 12 | +] | |
| 14 | 13 | |
| 14 | +def validate_file_extension(value): | |
| 15 | 15 | if hasattr(value.file, 'content_type'): |
| 16 | 16 | if not value.file.content_type in valid_formats: |
| 17 | 17 | raise ValidationError(_('Please select a valid file. The uploaded file must have one of the following extensions: .csv, .xlx, .xls and .xlsx')) | ... | ... |
| ... | ... | @@ -0,0 +1,369 @@ |
| 1 | +import os | |
| 2 | +import zipfile | |
| 3 | +import time | |
| 4 | +from django.conf import settings | |
| 5 | +from django.core.files import File | |
| 6 | +from rest_framework import serializers | |
| 7 | +from django.shortcuts import get_object_or_404 | |
| 8 | + | |
| 9 | +from subjects.serializers import TagSerializer | |
| 10 | +from topics.serializers import TopicSerializer | |
| 11 | +from pendencies.serializers import PendenciesSerializer | |
| 12 | +from students_group.serializers import StudentsGroupSerializer | |
| 13 | +from users.serializers import UserBackupSerializer | |
| 14 | + | |
| 15 | +from subjects.models import Tag, Subject | |
| 16 | +from topics.models import Topic, Resource | |
| 17 | +from pendencies.models import Pendencies | |
| 18 | +from students_group.models import StudentsGroup | |
| 19 | +from log.models import Log | |
| 20 | +from users.models import User | |
| 21 | + | |
| 22 | +from .models import Bulletin | |
| 23 | + | |
| 24 | +class SimpleBulletinSerializer(serializers.ModelSerializer): | |
| 25 | + topic = TopicSerializer('get_subject') | |
| 26 | + tags = TagSerializer(many = True) | |
| 27 | + pendencies_resource = PendenciesSerializer(many = True) | |
| 28 | + indicators = serializers.CharField(required = False, allow_blank = True, max_length = 255) | |
| 29 | + file_content = serializers.CharField(required = False, allow_blank = True, max_length = 255) | |
| 30 | + | |
| 31 | + def get_subject(self, obj): | |
| 32 | + subject = self.context.get("subject", None) | |
| 33 | + | |
| 34 | + return subject | |
| 35 | + | |
| 36 | + def validate(self, data): | |
| 37 | + files = self.context.get('files', None) | |
| 38 | + | |
| 39 | + if files: | |
| 40 | + if data["file_content"] in files.namelist(): | |
| 41 | + file_path = os.path.join(settings.MEDIA_ROOT, data["file_content"]) | |
| 42 | + | |
| 43 | + if os.path.isfile(file_path): | |
| 44 | + dst_path = os.path.join(settings.MEDIA_ROOT, "tmp") | |
| 45 | + | |
| 46 | + path = files.extract(data["file_content"], dst_path) | |
| 47 | + | |
| 48 | + new_name = "goal_" + str(time.time()) + os.path.splitext(data["file_content"])[1] | |
| 49 | + | |
| 50 | + new_path = os.path.join("bulletin", os.path.join("goals", new_name)) | |
| 51 | + | |
| 52 | + os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_path)) | |
| 53 | + | |
| 54 | + data["file_content"] = new_path | |
| 55 | + else: | |
| 56 | + path = files.extract(data["file_content"], settings.MEDIA_ROOT) | |
| 57 | + else: | |
| 58 | + data["file_content"] = None | |
| 59 | + | |
| 60 | + if data["indicators"] in files.namelist(): | |
| 61 | + file_path = os.path.join(settings.MEDIA_ROOT, data["indicators"]) | |
| 62 | + | |
| 63 | + if os.path.isfile(file_path): | |
| 64 | + dst_path = os.path.join(settings.MEDIA_ROOT, "tmp") | |
| 65 | + | |
| 66 | + path = files.extract(data["indicators"], dst_path) | |
| 67 | + | |
| 68 | + new_name = "ind_" + str(time.time()) + os.path.splitext(data["indicators"])[1] | |
| 69 | + | |
| 70 | + new_path = os.path.join("bulletin", os.path.join("indicators", new_name)) | |
| 71 | + | |
| 72 | + os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_path)) | |
| 73 | + | |
| 74 | + data["indicators"] = new_path | |
| 75 | + else: | |
| 76 | + path = files.extract(data["indicators"], settings.MEDIA_ROOT) | |
| 77 | + else: | |
| 78 | + data["indicators"] = None | |
| 79 | + else: | |
| 80 | + data["file_content"] = None | |
| 81 | + data["indicators"] = None | |
| 82 | + | |
| 83 | + return data | |
| 84 | + | |
| 85 | + class Meta: | |
| 86 | + model = Bulletin | |
| 87 | + extra_kwargs = { | |
| 88 | + "tags": { | |
| 89 | + "validators": [], | |
| 90 | + }, | |
| 91 | + } | |
| 92 | + exclude = ('students', 'groups',) | |
| 93 | + validators = [] | |
| 94 | + | |
| 95 | + def create(self, data): | |
| 96 | + topic = data['topic'] | |
| 97 | + | |
| 98 | + bulletin = None | |
| 99 | + | |
| 100 | + if not topic["id"] is None: | |
| 101 | + if "subject" in topic: | |
| 102 | + r_exits = Resource.objects.filter(topic__subject = topic["subject"], name__unaccent__iexact = data["name"]) | |
| 103 | + else: | |
| 104 | + r_exits = Resource.objects.filter(topic__subject__id = topic["subject_id"], name__unaccent__iexact = data["name"]) | |
| 105 | + | |
| 106 | + if not r_exits.exists(): | |
| 107 | + if topic['id'] == "": | |
| 108 | + topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"]) | |
| 109 | + | |
| 110 | + if topic_exist.exists(): | |
| 111 | + topic = topic_exist[0] | |
| 112 | + else: | |
| 113 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
| 114 | + | |
| 115 | + data["topic"] = topic | |
| 116 | + else: | |
| 117 | + data["topic"] = get_object_or_404(Topic, id = topic["id"]) | |
| 118 | + | |
| 119 | + bulletin_data = data | |
| 120 | + | |
| 121 | + pendencies = bulletin_data["pendencies_resource"] | |
| 122 | + del bulletin_data["pendencies_resource"] | |
| 123 | + | |
| 124 | + bulletin = Bulletin() | |
| 125 | + bulletin.name = bulletin_data["name"] | |
| 126 | + bulletin.brief_description = bulletin_data["brief_description"] | |
| 127 | + bulletin.show_window = bulletin_data["show_window"] | |
| 128 | + bulletin.all_students = bulletin_data["all_students"] | |
| 129 | + bulletin.visible = bulletin_data["visible"] | |
| 130 | + bulletin.order = bulletin_data["order"] | |
| 131 | + bulletin.topic = bulletin_data["topic"] | |
| 132 | + bulletin.content = bulletin_data["content"] | |
| 133 | + bulletin.file_content = bulletin_data["file_content"] | |
| 134 | + bulletin.indicators = bulletin_data["indicators"] | |
| 135 | + | |
| 136 | + bulletin.save() | |
| 137 | + | |
| 138 | + tags = data["tags"] | |
| 139 | + | |
| 140 | + for tag in tags: | |
| 141 | + if not tag["name"] == "": | |
| 142 | + if tag["id"] == "": | |
| 143 | + tag = Tag.objects.create(name = tag["name"]) | |
| 144 | + else: | |
| 145 | + tag = get_object_or_404(Tag, id = tag["id"]) | |
| 146 | + | |
| 147 | + bulletin.tags.add(tag) | |
| 148 | + | |
| 149 | + resource = get_object_or_404(Resource, id = bulletin.id) | |
| 150 | + | |
| 151 | + for pend in pendencies: | |
| 152 | + Pendencies.objects.create(resource = resource, **pend) | |
| 153 | + | |
| 154 | + return bulletin | |
| 155 | + | |
| 156 | + def update(self, instance, data): | |
| 157 | + return instance | |
| 158 | + | |
| 159 | +class CompleteBulletinSerializer(serializers.ModelSerializer): | |
| 160 | + topic = TopicSerializer('get_subject') | |
| 161 | + tags = TagSerializer(many = True) | |
| 162 | + pendencies_resource = PendenciesSerializer(many = True) | |
| 163 | + groups = StudentsGroupSerializer('get_files', many = True) | |
| 164 | + students = UserBackupSerializer('get_files', many = True) | |
| 165 | + indicators = serializers.CharField(required = False, allow_blank = True, max_length = 255) | |
| 166 | + file_content = serializers.CharField(required = False, allow_blank = True, max_length = 255) | |
| 167 | + | |
| 168 | + def get_subject(self, obj): | |
| 169 | + subject = self.context.get("subject", None) | |
| 170 | + | |
| 171 | + return subject | |
| 172 | + | |
| 173 | + def get_files(self, obj): | |
| 174 | + files = self.context.get("files", None) | |
| 175 | + | |
| 176 | + return files | |
| 177 | + | |
| 178 | + def validate(self, data): | |
| 179 | + files = self.context.get('files', None) | |
| 180 | + | |
| 181 | + if files: | |
| 182 | + if data["file_content"] in files.namelist(): | |
| 183 | + file_path = os.path.join(settings.MEDIA_ROOT, data["file_content"]) | |
| 184 | + | |
| 185 | + if os.path.isfile(file_path): | |
| 186 | + dst_path = os.path.join(settings.MEDIA_ROOT, "tmp") | |
| 187 | + | |
| 188 | + path = files.extract(data["file_content"], dst_path) | |
| 189 | + | |
| 190 | + new_name = "goal_" + str(time.time()) + os.path.splitext(data["file_content"])[1] | |
| 191 | + | |
| 192 | + new_path = os.path.join("bulletin", os.path.join("goals", new_name)) | |
| 193 | + | |
| 194 | + os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_path)) | |
| 195 | + | |
| 196 | + data["file_content"] = new_path | |
| 197 | + else: | |
| 198 | + path = files.extract(data["file_content"], settings.MEDIA_ROOT) | |
| 199 | + else: | |
| 200 | + data["file_content"] = None | |
| 201 | + | |
| 202 | + if data["indicators"] in files.namelist(): | |
| 203 | + file_path = os.path.join(settings.MEDIA_ROOT, data["indicators"]) | |
| 204 | + | |
| 205 | + if os.path.isfile(file_path): | |
| 206 | + dst_path = os.path.join(settings.MEDIA_ROOT, "tmp") | |
| 207 | + | |
| 208 | + path = files.extract(data["indicators"], dst_path) | |
| 209 | + | |
| 210 | + new_name = "ind_" + str(time.time()) + os.path.splitext(data["indicators"])[1] | |
| 211 | + | |
| 212 | + new_path = os.path.join("bulletin", os.path.join("indicators", new_name)) | |
| 213 | + | |
| 214 | + os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_path)) | |
| 215 | + | |
| 216 | + data["indicators"] = new_path | |
| 217 | + else: | |
| 218 | + path = files.extract(data["indicators"], settings.MEDIA_ROOT) | |
| 219 | + else: | |
| 220 | + data["indicators"] = None | |
| 221 | + else: | |
| 222 | + data["file_content"] = None | |
| 223 | + data["indicators"] = None | |
| 224 | + | |
| 225 | + return data | |
| 226 | + | |
| 227 | + class Meta: | |
| 228 | + model = Bulletin | |
| 229 | + extra_kwargs = { | |
| 230 | + "tags": { | |
| 231 | + "validators": [], | |
| 232 | + }, | |
| 233 | + } | |
| 234 | + fields = '__all__' | |
| 235 | + validators = [] | |
| 236 | + | |
| 237 | + def create(self, data): | |
| 238 | + topic = data['topic'] | |
| 239 | + | |
| 240 | + bulletin = None | |
| 241 | + | |
| 242 | + if not topic["id"] is None: | |
| 243 | + if "subject" in topic: | |
| 244 | + r_exits = Resource.objects.filter(topic__subject = topic["subject"], name__unaccent__iexact = data["name"]) | |
| 245 | + else: | |
| 246 | + r_exits = Resource.objects.filter(topic__subject__id = topic["subject_id"], name__unaccent__iexact = data["name"]) | |
| 247 | + | |
| 248 | + if not r_exits.exists(): | |
| 249 | + if topic['id'] == "": | |
| 250 | + topic_exist = Topic.objects.filter(subject = topic['subject'], name__unaccent__iexact = topic["name"]) | |
| 251 | + | |
| 252 | + if topic_exist.exists(): | |
| 253 | + topic = topic_exist[0] | |
| 254 | + else: | |
| 255 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
| 256 | + | |
| 257 | + data["topic"] = topic | |
| 258 | + else: | |
| 259 | + data["topic"] = get_object_or_404(Topic, id = topic["id"]) | |
| 260 | + | |
| 261 | + bulletin_data = data | |
| 262 | + | |
| 263 | + pendencies = bulletin_data["pendencies_resource"] | |
| 264 | + del bulletin_data["pendencies_resource"] | |
| 265 | + | |
| 266 | + bulletin = Bulletin() | |
| 267 | + bulletin.name = bulletin_data["name"] | |
| 268 | + bulletin.brief_description = bulletin_data["brief_description"] | |
| 269 | + bulletin.show_window = bulletin_data["show_window"] | |
| 270 | + bulletin.all_students = bulletin_data["all_students"] | |
| 271 | + bulletin.visible = bulletin_data["visible"] | |
| 272 | + bulletin.order = bulletin_data["order"] | |
| 273 | + bulletin.topic = bulletin_data["topic"] | |
| 274 | + bulletin.content = bulletin_data["content"] | |
| 275 | + bulletin.file_content = bulletin_data["file_content"] | |
| 276 | + bulletin.indicators = bulletin_data["indicators"] | |
| 277 | + | |
| 278 | + bulletin.save() | |
| 279 | + | |
| 280 | + tags = data["tags"] | |
| 281 | + | |
| 282 | + for tag in tags: | |
| 283 | + if not tag["name"] == "": | |
| 284 | + if tag["id"] == "": | |
| 285 | + tag = Tag.objects.create(name = tag["name"]) | |
| 286 | + else: | |
| 287 | + tag = get_object_or_404(Tag, id = tag["id"]) | |
| 288 | + | |
| 289 | + bulletin.tags.add(tag) | |
| 290 | + | |
| 291 | + resource = get_object_or_404(Resource, id = bulletin.id) | |
| 292 | + | |
| 293 | + students = data["students"] | |
| 294 | + subject = get_object_or_404(Subject, slug = self.context.get("subject", None)) | |
| 295 | + | |
| 296 | + for student_data in students: | |
| 297 | + logs = student_data["get_items"] | |
| 298 | + | |
| 299 | + if student_data["id"] == "": | |
| 300 | + u_exist = User.objects.filter(email = student_data["email"]) | |
| 301 | + | |
| 302 | + if not u_exist.exists(): | |
| 303 | + student = u_exist[0] | |
| 304 | + | |
| 305 | + for log in logs: | |
| 306 | + log["user_id"] = student.id | |
| 307 | + | |
| 308 | + l_exists = Log.objects.filter(user_id = log["user_id"], user = log["user"], user_email = log["user_email"], action = log["action"], resource = log["resource"], component = log["component"], context = log["context"]) | |
| 309 | + | |
| 310 | + if not l_exists.exists(): | |
| 311 | + Log.objects.create(**log) | |
| 312 | + else: | |
| 313 | + student = User() | |
| 314 | + student.email = student_data["email"] | |
| 315 | + student.username = student_data["username"] | |
| 316 | + student.last_name = student_data["last_name"] | |
| 317 | + student.social_name = student_data["social_name"] | |
| 318 | + student.show_email = student_data["show_email"] | |
| 319 | + student.is_staff = student_data["is_staff"] | |
| 320 | + student.is_active = student_data["is_active"] | |
| 321 | + student.image = student_data["image"] | |
| 322 | + | |
| 323 | + student.save() | |
| 324 | + | |
| 325 | + for log in logs: | |
| 326 | + log["user_id"] = student.id | |
| 327 | + | |
| 328 | + Log.objects.create(**log) | |
| 329 | + else: | |
| 330 | + student = get_object_or_404(User, id = student_data["id"]) | |
| 331 | + | |
| 332 | + for log in logs: | |
| 333 | + l_exists = Log.objects.filter(user_id = log["user_id"], user = log["user"], user_email = log["user_email"], action = log["action"], resource = log["resource"], component = log["component"], context = log["context"]) | |
| 334 | + | |
| 335 | + if not l_exists.exists(): | |
| 336 | + Log.objects.create(**log) | |
| 337 | + | |
| 338 | + bulletin.students.add(student) | |
| 339 | + subject.students.add(student) | |
| 340 | + | |
| 341 | + groups = data["groups"] | |
| 342 | + | |
| 343 | + for group_data in groups: | |
| 344 | + g_exists = StudentsGroup.objects.filter(subject = subject, slug = group_data["slug"]) | |
| 345 | + | |
| 346 | + if g_exists.exists(): | |
| 347 | + group = g_exists[0] | |
| 348 | + else: | |
| 349 | + group = StudentsGroup() | |
| 350 | + group.name = group_data["name"] | |
| 351 | + group.description = group_data["description"] | |
| 352 | + group.subject = subject | |
| 353 | + | |
| 354 | + group.save() | |
| 355 | + | |
| 356 | + for participant in group_data["participants"]: | |
| 357 | + p_user = get_object_or_404(User, email = participant["email"]) | |
| 358 | + | |
| 359 | + group.participants.add(p_user) | |
| 360 | + | |
| 361 | + bulletin.groups.add(group) | |
| 362 | + | |
| 363 | + for pend in pendencies: | |
| 364 | + Pendencies.objects.create(resource = resource, **pend) | |
| 365 | + | |
| 366 | + return bulletin | |
| 367 | + | |
| 368 | + def update(self, instance, data): | |
| 369 | + return instance | |
| 0 | 370 | \ No newline at end of file | ... | ... |
No preview for this file type
No preview for this file type
bulletin/static/css/estilo.css
| ... | ... | @@ -2,7 +2,7 @@ body,html{ |
| 2 | 2 | margin: 0; |
| 3 | 3 | padding: 0; |
| 4 | 4 | font-family: "Roboto", sans-serif; |
| 5 | - font-size: 0.95em; | |
| 5 | + /*font-size: 0.95em;*/ | |
| 6 | 6 | } |
| 7 | 7 | |
| 8 | 8 | .axis path, |
| ... | ... | @@ -25,11 +25,24 @@ body,html{ |
| 25 | 25 | display: none; |
| 26 | 26 | min-width: 20px; |
| 27 | 27 | height: 105px; |
| 28 | - background: none repeat scroll 0 0 #000; | |
| 29 | - border: 2px solid #ccc; | |
| 30 | - border-radius:10px; | |
| 28 | + background: none repeat scroll 0 0 #525252; | |
| 29 | + border: 2px solid #f5f5f5; | |
| 30 | + border-radius:5px; | |
| 31 | 31 | padding: 10px; |
| 32 | 32 | text-align: center; |
| 33 | 33 | color: #fff; |
| 34 | - opacity: 0.8; | |
| 34 | + opacity: 0.95; | |
| 35 | + font-size: 14px; | |
| 36 | +} | |
| 37 | + | |
| 38 | +.grey-tooltip + .tooltip > .tooltip-inner { | |
| 39 | + background-color: #666666; | |
| 40 | + border: 2px solid #f5f5f5; | |
| 41 | + border-radius:5px; | |
| 42 | + opacity: 0.95; | |
| 43 | + color:#f9f9f9; | |
| 44 | + padding: 10px; | |
| 45 | + font-size: 14px; | |
| 46 | + margin-top: -9px; | |
| 47 | + min-width: 190px; | |
| 35 | 48 | } | ... | ... |
bulletin/templates/bulletin/_form.html
| 1 | 1 | {% load static i18n %} |
| 2 | 2 | {% load widget_tweaks %} |
| 3 | 3 | |
| 4 | -<form method="post" action="" enctype="multipart/form-data"> | |
| 4 | +<form id="bulletin" method="post" action="" enctype="multipart/form-data"> | |
| 5 | 5 | {% csrf_token %} |
| 6 | 6 | |
| 7 | 7 | {% render_field form.control_subject %} |
| ... | ... | @@ -48,8 +48,8 @@ |
| 48 | 48 | |
| 49 | 49 | <label for="{{ form.file_content.auto_id }}">{{ form.file_content.label }} <span>*</span></label> |
| 50 | 50 | <a href="{% url 'bulletin:download_file' file=goal_file %}"> {% trans "Click to download a xls file with the data of the goals" %}</a> |
| 51 | - <div class="form-group{% if form.has_error %} has-error {% endif %} is-fileinput"> | |
| 52 | - {% render_field form.file_content class='file-selector' %} | |
| 51 | + <div class="form-group{% if form.has_error %} has-error {% endif %} is-fileinput" data-file_id="{{ form.file_content.auto_id }}"> | |
| 52 | + {% render_field form.file_content class='file-selector' data-max_size="1" data-mimetypes=mimeTypes %} | |
| 53 | 53 | |
| 54 | 54 | <div class="input-group common-file-input"> |
| 55 | 55 | <input type="text" readonly="" class="form-control" placeholder="{% trans 'Choose your file...' %}"> |
| ... | ... | @@ -74,23 +74,36 @@ |
| 74 | 74 | |
| 75 | 75 | <span id="helpBlock" class="help-block">{{ form.file_content.help_text }}</span> |
| 76 | 76 | |
| 77 | - {% if form.file_content.errors %} | |
| 78 | - <div class="alert alert-danger alert-dismissible" role="alert"> | |
| 79 | - <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
| 80 | - <span aria-hidden="true">×</span> | |
| 81 | - </button> | |
| 82 | - <ul> | |
| 83 | - {% for error in form.file_content.errors %} | |
| 84 | - <li>{{ error }}</li> | |
| 85 | - {% endfor %} | |
| 86 | - </ul> | |
| 87 | - </div> | |
| 88 | - {% endif %} | |
| 77 | + | |
| 78 | + </div> | |
| 79 | + | |
| 80 | + {% if form.file_content.errors %} | |
| 81 | + <div class="alert alert-danger alert-dismissible" role="alert"> | |
| 82 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
| 83 | + <span aria-hidden="true">×</span> | |
| 84 | + </button> | |
| 85 | + <ul> | |
| 86 | + {% for error in form.file_content.errors %} | |
| 87 | + <li>{{ error }}</li> | |
| 88 | + {% endfor %} | |
| 89 | + </ul> | |
| 90 | + </div> | |
| 91 | + {% endif %} | |
| 92 | + | |
| 93 | + <div class="col-lg-12 col-md-12 col-sm-12 alert alert-danger alert-dismissible {{ form.file_content.auto_id }}-file-errors" style="display:none" role="alert"> | |
| 94 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
| 95 | + <span aria-hidden="true">×</span> | |
| 96 | + </button> | |
| 97 | + <ul> | |
| 98 | + <li class="size" style="display:none">{% trans "The file is too large. It should have less than 1MB." %}</li> | |
| 99 | + <li class="format" style="display:none">{% trans 'File not supported.' %}</li> | |
| 100 | + </ul> | |
| 89 | 101 | </div> |
| 102 | + <br clear="all" /> | |
| 90 | 103 | |
| 91 | - <div class="form-group{% if form.has_error %} has-error {% endif %} is-fileinput"> | |
| 104 | + <div class="form-group{% if form.has_error %} has-error {% endif %} is-fileinput" data-file_id="{{ form.indicators.auto_id }}"> | |
| 92 | 105 | <label for="{{ form.indicators.auto_id }}">{{ form.indicators.label }} <span>*</span></label> |
| 93 | - {% render_field form.indicators class='file-selector' %} | |
| 106 | + {% render_field form.indicators class='file-selector' data-max_size="1" data-mimetypes=mimeTypes %} | |
| 94 | 107 | |
| 95 | 108 | <div class="input-group common-file-input"> |
| 96 | 109 | <input type="text" readonly="" class="form-control" placeholder="{% trans 'Choose your file...' %}"> |
| ... | ... | @@ -115,18 +128,29 @@ |
| 115 | 128 | |
| 116 | 129 | <span id="helpBlock" class="help-block">{{ form.indicators.help_text }}</span> |
| 117 | 130 | |
| 118 | - {% if form.indicators.errors %} | |
| 119 | - <div class="alert alert-danger alert-dismissible" role="alert"> | |
| 120 | - <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
| 121 | - <span aria-hidden="true">×</span> | |
| 122 | - </button> | |
| 123 | - <ul> | |
| 124 | - {% for error in form.indicators.errors %} | |
| 125 | - <li>{{ error }}</li> | |
| 126 | - {% endfor %} | |
| 127 | - </ul> | |
| 128 | - </div> | |
| 129 | - {% endif %} | |
| 131 | + </div> | |
| 132 | + | |
| 133 | + {% if form.indicators.errors %} | |
| 134 | + <div class="alert alert-danger alert-dismissible" role="alert"> | |
| 135 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
| 136 | + <span aria-hidden="true">×</span> | |
| 137 | + </button> | |
| 138 | + <ul> | |
| 139 | + {% for error in form.indicators.errors %} | |
| 140 | + <li>{{ error }}</li> | |
| 141 | + {% endfor %} | |
| 142 | + </ul> | |
| 143 | + </div> | |
| 144 | + {% endif %} | |
| 145 | + | |
| 146 | + <div class="col-lg-12 col-md-12 col-sm-12 alert alert-danger alert-dismissible {{ form.indicators.auto_id }}-file-errors" style="display:none" role="alert"> | |
| 147 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
| 148 | + <span aria-hidden="true">×</span> | |
| 149 | + </button> | |
| 150 | + <ul> | |
| 151 | + <li class="size" style="display:none">{% trans "The file is too large. It should have less than 1MB." %}</li> | |
| 152 | + <li class="format" style="display:none">{% trans 'File not supported.' %}</li> | |
| 153 | + </ul> | |
| 130 | 154 | </div> |
| 131 | 155 | |
| 132 | 156 | <legend>{% trans 'Common resources settings' %}</legend> | ... | ... |
bulletin/templates/bulletin/view.html
| ... | ... | @@ -9,7 +9,7 @@ |
| 9 | 9 | {% endblock%} |
| 10 | 10 | |
| 11 | 11 | {% block style %} |
| 12 | -<link rel="stylesheet" href="{% static 'css/estilo.css' %}"> | |
| 12 | + <link rel="stylesheet" href="{% static 'css/estilo.css' %}"> | |
| 13 | 13 | {% endblock %} |
| 14 | 14 | |
| 15 | 15 | {% block breadcrumbs %} |
| ... | ... | @@ -104,32 +104,44 @@ |
| 104 | 104 | |
| 105 | 105 | |
| 106 | 106 | <!-- Cor amarela --> |
| 107 | - {% if meta.alcancada < meta.desejada and meta.alcancada > meta.estabelecida %} | |
| 108 | - <th style="text-align:center;background-color:#f8b800 ; text-shadow: 1px 1px 10px #000; color:#fff; font-weight: normal;">{{ meta.alcancada }}%</th> | |
| 107 | + {% if meta.alcancada < meta.desejada and meta.alcancada > meta.estabelecida or meta.alcancada < meta.desejada and meta.alcancada == meta.estabelecida %} | |
| 108 | + <th style="text-align:center;background-color:#f8b800 ; text-shadow: 1px 1px 2px #000; color:#fff; font-weight: normal;" | |
| 109 | + data-toggle="tooltip" data-html="true" data-placement="bottom" | |
| 110 | + title="<b>Meta atingida!</b><br><br>Atenção! O seu resultado foi inferior ao recomendado pelo professor." class="grey-tooltip"> | |
| 111 | + {{ meta.alcancada }}%</th> | |
| 109 | 112 | {% endif %} |
| 110 | 113 | |
| 111 | - {% if meta.alcancada > meta.desejada and meta.alcancada < meta.estabelecida %} | |
| 112 | - <th style="text-align:center;background-color:#f8b800 ; text-shadow: 1px 1px 10px #000; color:#fff; font-weight: normal;">{{ meta.alcancada }}%</th> | |
| 113 | - | |
| 114 | + {% if meta.alcancada > meta.desejada and meta.alcancada < meta.estabelecida or meta.alcancada == meta.desejada and meta.alcancada < meta.estabelecida %} | |
| 115 | + <th style="text-align:center;background-color:#f8b800 ; text-shadow: 1px 1px 2px #000; color:#fff; font-weight: normal;" | |
| 116 | + data-toggle="tooltip" data-html="true" data-placement="bottom" | |
| 117 | + title="<b>Meta atingida!</b><br><br>Atenção! O seu resultado foi inferior a sua meta inicial." class="grey-tooltip"> | |
| 118 | + {{ meta.alcancada }}%</th> | |
| 114 | 119 | {% endif %} |
| 120 | + | |
| 115 | 121 | <!-- Cor amarela --> |
| 116 | 122 | |
| 117 | 123 | <!-- Cor verde --> |
| 118 | - {% if meta.alcancada > meta.desejada and meta.alcancada > meta.estabelecida or meta.alcancada == 100 %} | |
| 119 | - <th style="text-align:center;background-color:#00d337; text-shadow: 1px 1px 10px #000; color:#fff; font-weight: normal;">{{ meta.alcancada }}%</th> | |
| 124 | + {% if meta.alcancada > meta.desejada and meta.alcancada > meta.estabelecida or meta.alcancada == meta.desejada and meta.alcancada > meta.estabelecida or meta.alcancada > meta.desejada and meta.alcancada == meta.estabelecida or meta.alcancada == 100 or meta.alcancada == meta.desejada and meta.alcancada == meta.estabelecida %} | |
| 125 | + <th style="text-align:center;background-color:#00d337; text-shadow: 1px 1px 2px #000; color:#fff; font-weight: normal;" | |
| 126 | + data-toggle="tooltip" data-html="true" data-placement="bottom" | |
| 127 | + title="<b>Meta atingida!</b>" class="grey-tooltip"> | |
| 128 | + {{ meta.alcancada }}%</th> | |
| 120 | 129 | {% endif %} |
| 130 | + | |
| 121 | 131 | <!-- Cor verde --> |
| 122 | 132 | |
| 123 | 133 | <!-- Cor vermelha --> |
| 124 | 134 | {% if meta.alcancada < meta.desejada and meta.alcancada < meta.estabelecida %} |
| 125 | - <th style="text-align:center;background-color:#ff0000; text-shadow: 1px 1px 10px #000; color:#fff; font-weight: normal;">{{ meta.alcancada }}%</th> | |
| 135 | + <th style="text-align:center;background-color:#ff0000; text-shadow: 1px 1px 2px #000; color:#fff; font-weight: normal;" | |
| 136 | + data-toggle="tooltip" data-html="true" data-placement="bottom" | |
| 137 | + title="<b>Meta não atingida!</b><br><br>Resultado inferior </br>a sua meta e ao recomendado pelo professor." class="grey-tooltip"> | |
| 138 | + {{ meta.alcancada }}%</th> | |
| 126 | 139 | |
| 127 | 140 | {% endif %} |
| 128 | 141 | <!-- Cor vermelha --> |
| 129 | 142 | |
| 130 | 143 | |
| 131 | 144 | </tr> |
| 132 | - | |
| 133 | 145 | {% endfor %} |
| 134 | 146 | |
| 135 | 147 | |
| ... | ... | @@ -236,6 +248,17 @@ |
| 236 | 248 | |
| 237 | 249 | |
| 238 | 250 | <script type="text/javascript"> |
| 251 | + $('#bulletin-difficulties-modal').on('shown.bs.modal', function (e) { | |
| 252 | + $.ajax({ | |
| 253 | + url: "{% url 'bulletin:difficulties_log' bulletin.slug %}", | |
| 254 | + dataType: 'json', | |
| 255 | + success: function (data) { | |
| 256 | + }, | |
| 257 | + error: function (data) { | |
| 258 | + console.log(data); | |
| 259 | + } | |
| 260 | + }); | |
| 261 | + }); | |
| 239 | 262 | // Variável obtidas a partir do número de metas atendidas |
| 240 | 263 | var percent = "{{ percent }}"; |
| 241 | 264 | ... | ... |
bulletin/templates/bulletin/window_view.html
| ... | ... | @@ -47,7 +47,7 @@ |
| 47 | 47 | <script type="text/javascript" src="{% static 'js/jscookie.js' %}"></script> |
| 48 | 48 | <script type="text/javascript" src="{% static 'js/jPages.js' %}"></script> |
| 49 | 49 | <script type="text/javascript" src="{% static 'js/d3.v3.min.js' %}"></script> |
| 50 | - <script type="text/javascript" src="{% static 'subjects/js/modal_subject.js' %}"></script> | |
| 50 | + <script type="text/javascript" src="{% static 'subjects/js/modal_subject.js' %}"></script> | |
| 51 | 51 | |
| 52 | 52 | <!-- Font awesome --> |
| 53 | 53 | <link rel="stylesheet" type="text/css" href="{% static 'font-awesome-4.6.3/css/font-awesome.min.css' %}"> |
| ... | ... | @@ -55,15 +55,26 @@ |
| 55 | 55 | <!-- Custom styles --> |
| 56 | 56 | <link rel="stylesheet" type="text/css" href="{% static 'css/base/amadeus_responsive.css' %}"> |
| 57 | 57 | <link rel="stylesheet" type="text/css" href="{% static 'css/base/amadeus.css' %}"> |
| 58 | + <link rel="stylesheet" href="{% static 'css/estilo.css' %}"> | |
| 58 | 59 | |
| 59 | 60 | {% with 'css/themes/'|add:theme.css_style|add:'.css' as theme_selected %} |
| 60 | 61 | <link rel="stylesheet" type="text/css" href="{% static theme_selected %}"> |
| 61 | 62 | {% endwith %} |
| 62 | 63 | |
| 63 | 64 | |
| 64 | - <link rel="stylesheet" href="{% static 'css/estilo.css' %}"> | |
| 65 | + | |
| 65 | 66 | </head> |
| 66 | 67 | <body style="background: #FFF"> |
| 68 | + {% if messages %} | |
| 69 | + {% for message in messages %} | |
| 70 | + <div class="alert alert-{{ message.tags }} alert-dismissible" role="alert"> | |
| 71 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
| 72 | + <span aria-hidden="true">×</span> | |
| 73 | + </button> | |
| 74 | + <p>{{ message }}</p> | |
| 75 | + </div> | |
| 76 | + {% endfor %} | |
| 77 | + {% endif %} | |
| 67 | 78 | |
| 68 | 79 | {% subject_permissions request.user bulletin.topic.subject as has_subject_permissions %} |
| 69 | 80 | <div class="container-fluid" style="padding-top: 20px;"> |
| ... | ... | @@ -115,28 +126,41 @@ |
| 115 | 126 | |
| 116 | 127 | |
| 117 | 128 | <!-- Cor amarela --> |
| 118 | - {% if meta.alcancada < meta.desejada and meta.alcancada > meta.estabelecida %} | |
| 119 | - <th style="text-align:center;background-color:#f8b800 ; text-shadow: 1px 1px 10px #000; color:#fff; font-weight: normal;">{{ meta.alcancada }}%</th> | |
| 120 | - {% endif %} | |
| 129 | + {% if meta.alcancada < meta.desejada and meta.alcancada > meta.estabelecida or meta.alcancada < meta.desejada and meta.alcancada == meta.estabelecida %} | |
| 130 | + <th style="text-align:center;background-color:#f8b800 ; text-shadow: 1px 1px 2px #000; color:#fff; font-weight: normal;" | |
| 131 | + data-toggle="tooltip" data-html="true" data-placement="bottom" | |
| 132 | + title="<b>Meta atingida!</b><br><br>Atenção! O seu resultado foi inferior ao recomendado pelo professor." class="grey-tooltip"> | |
| 133 | + {{ meta.alcancada }}%</th> | |
| 134 | + {% endif %} | |
| 121 | 135 | |
| 122 | - {% if meta.alcancada > meta.desejada and meta.alcancada < meta.estabelecida %} | |
| 123 | - <th style="text-align:center;background-color:#f8b800 ; text-shadow: 1px 1px 10px #000; color:#fff; font-weight: normal;">{{ meta.alcancada }}%</th> | |
| 136 | + {% if meta.alcancada > meta.desejada and meta.alcancada < meta.estabelecida or meta.alcancada == meta.desejada and meta.alcancada < meta.estabelecida %} | |
| 137 | + <th style="text-align:center;background-color:#f8b800 ; text-shadow: 1px 1px 2px #000; color:#fff; font-weight: normal;" | |
| 138 | + data-toggle="tooltip" data-html="true" data-placement="bottom" | |
| 139 | + title="<b>Meta atingida!</b><br><br>Atenção! O seu resultado foi inferior a sua meta inicial." class="grey-tooltip"> | |
| 140 | + {{ meta.alcancada }}%</th> | |
| 141 | + {% endif %} | |
| 124 | 142 | |
| 125 | - {% endif %} | |
| 126 | - <!-- Cor amarela --> | |
| 143 | + <!-- Cor amarela --> | |
| 127 | 144 | |
| 128 | 145 | <!-- Cor verde --> |
| 129 | - {% if meta.alcancada > meta.desejada and meta.alcancada > meta.estabelecida or meta.alcancada == 100 %} | |
| 130 | - <th style="text-align:center;background-color:#00d337; text-shadow: 1px 1px 10px #000; color:#fff; font-weight: normal;">{{ meta.alcancada }}%</th> | |
| 146 | + {% if meta.alcancada > meta.desejada and meta.alcancada > meta.estabelecida or meta.alcancada == meta.desejada and meta.alcancada > meta.estabelecida or meta.alcancada > meta.desejada and meta.alcancada == meta.estabelecida or meta.alcancada == 100 or meta.alcancada == meta.desejada and meta.alcancada == meta.estabelecida %} | |
| 147 | + <th style="text-align:center;background-color:#00d337; text-shadow: 1px 1px 2px #000; color:#fff; font-weight: normal;" | |
| 148 | + data-toggle="tooltip" data-html="true" data-placement="bottom" | |
| 149 | + title="<b>Meta atingida!</b>" class="grey-tooltip"> | |
| 150 | + {{ meta.alcancada }}%</th> | |
| 131 | 151 | {% endif %} |
| 152 | + | |
| 132 | 153 | <!-- Cor verde --> |
| 133 | 154 | |
| 134 | - <!-- Cor vermelha --> | |
| 135 | - {% if meta.alcancada < meta.desejada and meta.alcancada < meta.estabelecida %} | |
| 136 | - <th style="text-align:center;background-color:#ff0000; text-shadow: 1px 1px 10px #000; color:#fff; font-weight: normal;">{{ meta.alcancada }}%</th> | |
| 155 | + <!-- Cor vermelha --> | |
| 156 | + {% if meta.alcancada < meta.desejada and meta.alcancada < meta.estabelecida %} | |
| 157 | + <th style="text-align:center;background-color:#ff0000; text-shadow: 1px 1px 2px #000; color:#fff; font-weight: normal;" | |
| 158 | + data-toggle="tooltip" data-html="true" data-placement="bottom" | |
| 159 | + title="<b>Meta não atingida!</b><br><br>Resultado inferior </br>a sua meta e ao recomendado pelo professor." class="grey-tooltip"> | |
| 160 | + {{ meta.alcancada }}%</th> | |
| 137 | 161 | |
| 138 | - {% endif %} | |
| 139 | - <!-- Cor vermelha --> | |
| 162 | + {% endif %} | |
| 163 | + <!-- Cor vermelha --> | |
| 140 | 164 | |
| 141 | 165 | |
| 142 | 166 | </tr> |
| ... | ... | @@ -204,40 +228,40 @@ |
| 204 | 228 | </div> |
| 205 | 229 | |
| 206 | 230 | {% if not has_subject_permissions %} |
| 207 | - <div class="form-group" style="background-color:#fff; box-shadow: 1px 1px 25px #c0beaf; margin-top: 15px;"> | |
| 231 | + <div class="form-group" style="background-color:#fff; box-shadow: 1px 1px 25px #c0beaf; margin-top: 15px;"> | |
| 208 | 232 | <div class="row"> |
| 209 | - <div class="col-md-1" align="left" style="padding-left: 25px; padding-top: 10px;"> | |
| 210 | - <img src="{% static 'img/warning.png' %}" height="80" width="95"/> | |
| 211 | - </div> | |
| 212 | - <div class="col-md-11"> | |
| 213 | - <div class="row"> | |
| 233 | + <div class="col-md-1" align="left" style="padding-left: 25px; padding-top: 10px;"> | |
| 234 | + <img src="{% static 'img/warning.png' %}" height="80" width="95"/> | |
| 235 | + </div> | |
| 236 | + <div class="col-md-11"> | |
| 237 | + <div class="row"> | |
| 214 | 238 | <div align="left" style="padding-left: 25px; font-size:22px; color: #878787; padding-top: 15px;padding-bottom: 20px;">{% trans 'There are obstructions to your activities?' %}</div> |
| 215 | 239 | <div align="left" style="padding-left: 25px; padding-right:35px; font-size:16px;"><p><a data-toggle="modal" data-target="#bulletin-difficulties-modal" href=""><b>{% trans 'Click here' %}</b></a> {% trans 'to communicate the difficulties that may decrease your performance.' %}</p></div> |
| 240 | + </div> | |
| 216 | 241 | </div> |
| 217 | 242 | </div> |
| 218 | 243 | </div> |
| 219 | - </div> | |
| 220 | - </br> | |
| 221 | - <div class="modal fade" tabindex="-1" role="dialog" id="bulletin-difficulties-modal"> | |
| 222 | - <div class="modal-dialog" role="document"> | |
| 223 | - <div class="modal-content"> | |
| 244 | + </br> | |
| 245 | + <div class="modal fade" tabindex="-1" role="dialog" id="bulletin-difficulties-modal"> | |
| 246 | + <div class="modal-dialog" role="document"> | |
| 247 | + <div class="modal-content"> | |
| 224 | 248 | <div class="modal-header"> |
| 225 | - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> | |
| 249 | + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> | |
| 226 | 250 | </div> |
| 227 | 251 | <div class="modal-body"> |
| 228 | - <form id="bulletin-difficulties" action="" method="POST" enctype="multipart/form-data"> | |
| 229 | - {% csrf_token %} | |
| 230 | - <textarea class="form-control" id="dificulties" name="difficulties" placeholder="{% trans 'Type here the dificulties that may harm your performance' %}"></textarea> | |
| 231 | - </form> | |
| 252 | + <form id="bulletin-difficulties" action="" method="POST" enctype="multipart/form-data"> | |
| 253 | + {% csrf_token %} | |
| 254 | + <textarea class="form-control" id="dificulties" name="difficulties" placeholder="{% trans 'Type here the dificulties that may harm your performance' %}"></textarea> | |
| 255 | + </form> | |
| 232 | 256 | </div> |
| 233 | 257 | <div class="modal-footer"> |
| 234 | - <button type="button" class="btn btn-default btn-raised" data-dismiss="modal">{% trans "Close" %}</button> | |
| 235 | - <button type="submit" class="btn btn-success btn-raised erase-button" form="bulletin-difficulties">{% trans "Send" %}</button> | |
| 258 | + <button type="button" class="btn btn-default btn-raised" data-dismiss="modal">{% trans "Close" %}</button> | |
| 259 | + <button type="submit" class="btn btn-success btn-raised erase-button" form="bulletin-difficulties">{% trans "Send" %}</button> | |
| 236 | 260 | </div> |
| 261 | + </div> | |
| 237 | 262 | </div> |
| 238 | - </div> | |
| 239 | - </div> | |
| 240 | - {% endif %} | |
| 263 | + </div> | |
| 264 | + {% endif %} | |
| 241 | 265 | |
| 242 | 266 | {% include 'session_security/all.html' %} |
| 243 | 267 | <script type="text/javascript"> |
| ... | ... | @@ -245,6 +269,22 @@ |
| 245 | 269 | </script> |
| 246 | 270 | |
| 247 | 271 | <script type="text/javascript"> |
| 272 | + $('[data-toggle="tooltip"]').tooltip({ | |
| 273 | + trigger: 'hover' | |
| 274 | + }); | |
| 275 | + | |
| 276 | + $('#bulletin-difficulties-modal').on('shown.bs.modal', function (e) { | |
| 277 | + $.ajax({ | |
| 278 | + url: "{% url 'bulletin:difficulties_log' bulletin.slug %}", | |
| 279 | + dataType: 'json', | |
| 280 | + success: function (data) { | |
| 281 | + }, | |
| 282 | + error: function (data) { | |
| 283 | + console.log(data); | |
| 284 | + } | |
| 285 | + }); | |
| 286 | + }); | |
| 287 | + | |
| 248 | 288 | // Variável obtidas a partir do número de metas atendidas |
| 249 | 289 | var percent = "{{ percent }}"; |
| 250 | 290 | ... | ... |
bulletin/urls.py
| ... | ... | @@ -12,4 +12,5 @@ urlpatterns = [ |
| 12 | 12 | url(r'^chart/(?P<slug>[\w_-]+)/$', views.StatisticsView.as_view(), name = 'get_chart'), |
| 13 | 13 | url(r'^send-message/(?P<slug>[\w_-]+)/$', views.SendMessage.as_view(), name = 'send_message'), |
| 14 | 14 | url(r'^download_file/(?P<file>[\w_-]+)/$', views.download_excel, name = 'download_file'), |
| 15 | + url(r'^difficulties_log/(?P<slug>[\w_-]+)/$', views.bulletin_diff_view_log, name = 'difficulties_log') | |
| 15 | 16 | ] | ... | ... |
bulletin/utils.py
| ... | ... | @@ -11,14 +11,11 @@ from django.utils.translation import ugettext_lazy as _ |
| 11 | 11 | |
| 12 | 12 | from channels import Group |
| 13 | 13 | |
| 14 | +from api.utils import sendChatPushNotification | |
| 14 | 15 | |
| 15 | 16 | from chat.models import Conversation, TalkMessages, ChatVisualizations |
| 16 | 17 | from users.models import User |
| 17 | 18 | |
| 18 | - | |
| 19 | - | |
| 20 | - | |
| 21 | - | |
| 22 | 19 | def brodcast_dificulties(request, message, subject): |
| 23 | 20 | msg = TalkMessages() |
| 24 | 21 | msg.text = message |
| ... | ... | @@ -54,4 +51,6 @@ def brodcast_dificulties(request, message, subject): |
| 54 | 51 | |
| 55 | 52 | Group("user-%s" % p.id).send({'text': notification}) |
| 56 | 53 | |
| 54 | + sendChatPushNotification(p, msg) | |
| 55 | + | |
| 57 | 56 | ChatVisualizations.objects.create(viewed = False, message = msg, user = p) | ... | ... |
bulletin/views.py
| ... | ... | @@ -27,9 +27,11 @@ from django.utils import timezone |
| 27 | 27 | from pendencies.forms import PendenciesForm |
| 28 | 28 | |
| 29 | 29 | from .forms import BulletinForm |
| 30 | -from .models import Bulletin | |
| 30 | +from .models import Bulletin, valid_formats | |
| 31 | 31 | |
| 32 | 32 | from log.models import Log |
| 33 | +from log.decorators import log_decorator | |
| 34 | + | |
| 33 | 35 | from chat.models import Conversation, TalkMessages, ChatVisualizations |
| 34 | 36 | from users.models import User |
| 35 | 37 | from subjects.models import Subject |
| ... | ... | @@ -81,11 +83,35 @@ class NewWindowView(LoginRequiredMixin, LogMixin, generic.DetailView): |
| 81 | 83 | self.student = user |
| 82 | 84 | else: |
| 83 | 85 | if not difficulties is None and not difficulties == "": |
| 84 | - message = _("#Dificulty(ies) found in %s")%(str(bulletin)) + ":<p>" + difficulties + "</p>" | |
| 86 | + print(difficulties) | |
| 87 | + message = _("#Difficulty(ies) found in %s")%(str(bulletin)) + ":<p>" + difficulties + "</p>" | |
| 85 | 88 | |
| 86 | 89 | brodcast_dificulties(self.request, message, bulletin.topic.subject) |
| 87 | 90 | |
| 91 | + self.log_context = {} | |
| 92 | + self.log_context['category_id'] = bulletin.topic.subject.category.id | |
| 93 | + self.log_context['category_name'] = bulletin.topic.subject.category.name | |
| 94 | + self.log_context['category_slug'] = bulletin.topic.subject.category.slug | |
| 95 | + self.log_context['subject_id'] = bulletin.topic.subject.id | |
| 96 | + self.log_context['subject_name'] = bulletin.topic.subject.name | |
| 97 | + self.log_context['subject_slug'] = bulletin.topic.subject.slug | |
| 98 | + self.log_context['topic_id'] = bulletin.topic.id | |
| 99 | + self.log_context['topic_name'] = bulletin.topic.name | |
| 100 | + self.log_context['topic_slug'] = bulletin.topic.slug | |
| 101 | + self.log_context['bulletin_id'] = bulletin.id | |
| 102 | + self.log_context['bulletin_name'] = bulletin.name | |
| 103 | + self.log_context['bulletin_slug'] = bulletin.slug | |
| 104 | + | |
| 105 | + self.log_action = "send_difficulties" | |
| 106 | + | |
| 107 | + super(NewWindowView, self).createLog(self.request.user, self.log_component, self.log_action, | |
| 108 | + self.log_resource, self.log_context) | |
| 109 | + | |
| 110 | + self.log_action = "view" | |
| 111 | + self.log_context = {} | |
| 112 | + | |
| 88 | 113 | messages.success(self.request, message = _("Difficulties sent to the subject professor(s)")) |
| 114 | + | |
| 89 | 115 | return self.render_to_response(context = self.get_context_data()) |
| 90 | 116 | else: |
| 91 | 117 | messages.error(self.request, message = _("You should inform some difficulty")) |
| ... | ... | @@ -184,8 +210,9 @@ class NewWindowView(LoginRequiredMixin, LogMixin, generic.DetailView): |
| 184 | 210 | context['titulos'] = titulos |
| 185 | 211 | context['student'] = self.request.POST.get('selected_student', students.first().email) |
| 186 | 212 | context['students'] = students |
| 187 | - | |
| 213 | + | |
| 188 | 214 | return context |
| 215 | + | |
| 189 | 216 | class InsideView(LoginRequiredMixin, LogMixin, generic.DetailView): |
| 190 | 217 | log_component = 'resources' |
| 191 | 218 | log_action = 'view' |
| ... | ... | @@ -228,6 +255,28 @@ class InsideView(LoginRequiredMixin, LogMixin, generic.DetailView): |
| 228 | 255 | |
| 229 | 256 | brodcast_dificulties(self.request, message, bulletin.topic.subject) |
| 230 | 257 | |
| 258 | + self.log_context = {} | |
| 259 | + self.log_context['category_id'] = bulletin.topic.subject.category.id | |
| 260 | + self.log_context['category_name'] = bulletin.topic.subject.category.name | |
| 261 | + self.log_context['category_slug'] = bulletin.topic.subject.category.slug | |
| 262 | + self.log_context['subject_id'] = bulletin.topic.subject.id | |
| 263 | + self.log_context['subject_name'] = bulletin.topic.subject.name | |
| 264 | + self.log_context['subject_slug'] = bulletin.topic.subject.slug | |
| 265 | + self.log_context['topic_id'] = bulletin.topic.id | |
| 266 | + self.log_context['topic_name'] = bulletin.topic.name | |
| 267 | + self.log_context['topic_slug'] = bulletin.topic.slug | |
| 268 | + self.log_context['bulletin_id'] = bulletin.id | |
| 269 | + self.log_context['bulletin_name'] = bulletin.name | |
| 270 | + self.log_context['bulletin_slug'] = bulletin.slug | |
| 271 | + | |
| 272 | + self.log_action = "send_difficulties" | |
| 273 | + | |
| 274 | + super(InsideView, self).createLog(self.request.user, self.log_component, self.log_action, | |
| 275 | + self.log_resource, self.log_context) | |
| 276 | + | |
| 277 | + self.log_action = "view" | |
| 278 | + self.log_context = {} | |
| 279 | + | |
| 231 | 280 | messages.success(self.request, message = _("Difficulties sent to the subject professor(s)")) |
| 232 | 281 | return self.render_to_response(context = self.get_context_data()) |
| 233 | 282 | else: |
| ... | ... | @@ -466,6 +515,7 @@ class CreateView(LoginRequiredMixin, LogMixin, generic.edit.CreateView): |
| 466 | 515 | alunos = sorted(list(meta_geral.topic.subject.students.all()), key = lambda e: e.id) |
| 467 | 516 | create_excel_file(alunos, itens_da_meta,meta_geral) |
| 468 | 517 | context['goal_file'] = str(meta_geral.slug) |
| 518 | + context['mimeTypes'] = valid_formats | |
| 469 | 519 | |
| 470 | 520 | |
| 471 | 521 | return context |
| ... | ... | @@ -738,6 +788,7 @@ class UpdateView(LoginRequiredMixin, LogMixin, generic.UpdateView): |
| 738 | 788 | alunos = sorted(list(meta_geral.topic.subject.students.all()), key = lambda e: e.id) |
| 739 | 789 | create_excel_file(alunos, itens_da_meta,meta_geral) |
| 740 | 790 | context['goal_file'] = str(meta_geral.slug) |
| 791 | + context['mimeTypes'] = valid_formats | |
| 741 | 792 | |
| 742 | 793 | return context |
| 743 | 794 | |
| ... | ... | @@ -893,7 +944,27 @@ class StatisticsView(LoginRequiredMixin, LogMixin, generic.DetailView): |
| 893 | 944 | context["history_table"] = history |
| 894 | 945 | return context |
| 895 | 946 | |
| 947 | +@log_decorator('resources', 'access_difficulties_modal', 'bulletin') | |
| 948 | +def bulletin_diff_view_log(request, slug): | |
| 949 | + bulletin = get_object_or_404(Bulletin, slug = slug) | |
| 896 | 950 | |
| 951 | + log_context = {} | |
| 952 | + log_context['category_id'] = bulletin.topic.subject.category.id | |
| 953 | + log_context['category_name'] = bulletin.topic.subject.category.name | |
| 954 | + log_context['category_slug'] = bulletin.topic.subject.category.slug | |
| 955 | + log_context['subject_id'] = bulletin.topic.subject.id | |
| 956 | + log_context['subject_name'] = bulletin.topic.subject.name | |
| 957 | + log_context['subject_slug'] = bulletin.topic.subject.slug | |
| 958 | + log_context['topic_id'] = bulletin.topic.id | |
| 959 | + log_context['topic_name'] = bulletin.topic.name | |
| 960 | + log_context['topic_slug'] = bulletin.topic.slug | |
| 961 | + log_context['bulletin_id'] = bulletin.id | |
| 962 | + log_context['bulletin_name'] = bulletin.name | |
| 963 | + log_context['bulletin_slug'] = bulletin.slug | |
| 964 | + | |
| 965 | + request.log_context = log_context | |
| 966 | + | |
| 967 | + return JsonResponse({'message': 'ok'}) | |
| 897 | 968 | |
| 898 | 969 | from django.http import HttpResponse #used to send HTTP 404 error to ajax |
| 899 | 970 | ... | ... |
categories/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
chat/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| ... | ... | @@ -250,11 +250,11 @@ msgstr "Inativo" |
| 250 | 250 | msgid "Offline" |
| 251 | 251 | msgstr "Offline" |
| 252 | 252 | |
| 253 | -#: chat/templatetags/chat_tags.py:63 chat/views.py:429 | |
| 253 | +#: chat/templatetags/chat_tags.py:63 chat/views.py:426 | |
| 254 | 254 | msgid "Unfavorite" |
| 255 | 255 | msgstr "Desfavoritar" |
| 256 | 256 | |
| 257 | -#: chat/templatetags/chat_tags.py:65 chat/views.py:433 | |
| 257 | +#: chat/templatetags/chat_tags.py:65 chat/views.py:430 | |
| 258 | 258 | msgid "Favorite" |
| 259 | 259 | msgstr "Favoritar" |
| 260 | 260 | ... | ... |
chat/models.py
| ... | ... | @@ -11,9 +11,9 @@ from datetime import timezone |
| 11 | 11 | from subjects.models import Subject |
| 12 | 12 | from users.models import User |
| 13 | 13 | |
| 14 | +valid_formats = ['image/jpeg','image/x-citrix-jpeg','image/png','image/x-citrix-png','image/x-png','image/gif'] | |
| 15 | + | |
| 14 | 16 | def validate_img_extension(value): |
| 15 | - valid_formats = ['image/jpeg','image/x-citrix-jpeg','image/png','image/x-citrix-png','image/x-png','image/gif'] | |
| 16 | - | |
| 17 | 17 | if hasattr(value.file, 'content_type'): |
| 18 | 18 | if not value.file.content_type in valid_formats: |
| 19 | 19 | raise ValidationError(_('Select a valid file. The file must posses one of this extensions: .jpg, .png, .gif')) | ... | ... |
chat/views.py
| ... | ... | @@ -24,12 +24,12 @@ from log.models import Log |
| 24 | 24 | from log.mixins import LogMixin |
| 25 | 25 | import time |
| 26 | 26 | |
| 27 | -from fcm_django.models import FCMDevice | |
| 28 | - | |
| 29 | 27 | from categories.models import Category |
| 30 | 28 | from subjects.models import Subject |
| 31 | 29 | from users.models import User |
| 32 | 30 | |
| 31 | +from api.utils import sendChatPushNotification | |
| 32 | + | |
| 33 | 33 | from .models import Conversation, TalkMessages, ChatVisualizations, ChatFavorites |
| 34 | 34 | from .forms import ChatMessageForm |
| 35 | 35 | |
| ... | ... | @@ -371,10 +371,7 @@ class SendMessage(LoginRequiredMixin, LogMixin, generic.edit.CreateView): |
| 371 | 371 | |
| 372 | 372 | Group("user-%s" % user.id).send({'text': notification}) |
| 373 | 373 | |
| 374 | - device = FCMDevice.objects.filter(user = user).first() | |
| 375 | - | |
| 376 | - if not device is None: | |
| 377 | - device.send_message(title = "Message", body = self.object.text) | |
| 374 | + sendChatPushNotification(user, self.object) | |
| 378 | 375 | |
| 379 | 376 | ChatVisualizations.objects.create(viewed = False, message = self.object, user = user) |
| 380 | 377 | ... | ... |
dashboards/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
file_link/forms.py
| ... | ... | @@ -2,14 +2,18 @@ |
| 2 | 2 | from django import forms |
| 3 | 3 | from django.utils.translation import ugettext_lazy as _ |
| 4 | 4 | from django.utils.html import strip_tags |
| 5 | +from resubmit.widgets import ResubmitFileWidget | |
| 5 | 6 | |
| 6 | 7 | from subjects.models import Tag |
| 8 | +from subjects.forms import ParticipantsMultipleChoiceField | |
| 7 | 9 | |
| 8 | 10 | from .models import FileLink |
| 9 | 11 | |
| 10 | 12 | class FileLinkForm(forms.ModelForm): |
| 11 | 13 | subject = None |
| 12 | 14 | MAX_UPLOAD_SIZE = 10*1024*1024 |
| 15 | + | |
| 16 | + students = ParticipantsMultipleChoiceField(queryset = None, required = False) | |
| 13 | 17 | |
| 14 | 18 | def __init__(self, *args, **kwargs): |
| 15 | 19 | super(FileLinkForm, self).__init__(*args, **kwargs) |
| ... | ... | @@ -35,6 +39,7 @@ class FileLinkForm(forms.ModelForm): |
| 35 | 39 | 'brief_description': forms.Textarea, |
| 36 | 40 | 'students': forms.SelectMultiple, |
| 37 | 41 | 'groups': forms.SelectMultiple, |
| 42 | + 'file_content': ResubmitFileWidget(attrs={'accept':'image/jpeg,image/x-citrix-jpeg,image/png,image/x-citrix-png,image/x-png,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.presentationml.slideshow,application/vnd.openxmlformats-officedocument.presentationml.presentation,application/vnd.ms-excel,text/html,application/msword,application/vnd.oasis.opendocument.presentation,application/vnd.oasis.opendocument.spreadsheet,application/vnd.oasis.opendocument.text,application/pdf,application/vnd.ms-powerpoint'}), | |
| 38 | 43 | } |
| 39 | 44 | |
| 40 | 45 | def clean_name(self): | ... | ... |
file_link/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| ... | ... | @@ -18,27 +18,27 @@ msgstr "" |
| 18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
| 19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
| 20 | 20 | |
| 21 | -#: file_link/forms.py:26 | |
| 21 | +#: file_link/forms.py:30 | |
| 22 | 22 | msgid "Tags" |
| 23 | 23 | msgstr "Tags" |
| 24 | 24 | |
| 25 | -#: file_link/forms.py:32 | |
| 25 | +#: file_link/forms.py:36 | |
| 26 | 26 | msgid "File name" |
| 27 | 27 | msgstr "Nome do arquivo" |
| 28 | 28 | |
| 29 | -#: file_link/forms.py:52 | |
| 29 | +#: file_link/forms.py:57 | |
| 30 | 30 | msgid "This subject already has a file link with this name" |
| 31 | 31 | msgstr "Esse assunto já possui um Link para Arquivo com esse nome" |
| 32 | 32 | |
| 33 | -#: file_link/forms.py:64 | |
| 33 | +#: file_link/forms.py:69 file_link/templates/file_links/_form.html:75 | |
| 34 | 34 | msgid "The file is too large. It should have less than 10MB." |
| 35 | 35 | msgstr "Esse arquivo é muito grande. Ele deve conter menos de 10MB." |
| 36 | 36 | |
| 37 | -#: file_link/forms.py:69 | |
| 37 | +#: file_link/forms.py:74 | |
| 38 | 38 | msgid "This field is required." |
| 39 | 39 | msgstr "Esse campo é obrigatório." |
| 40 | 40 | |
| 41 | -#: file_link/models.py:23 | |
| 41 | +#: file_link/models.py:24 | |
| 42 | 42 | msgid "" |
| 43 | 43 | "Please select a valid file. The uploaded file must have one of the following " |
| 44 | 44 | "extensions: .doc, .docx, .html, .jpg, .odp, .ods, .odt, .pdf, .png, .ppt, ." |
| ... | ... | @@ -48,19 +48,19 @@ msgstr "" |
| 48 | 48 | "das seguintes extensões: .doc, .docx, .html, .jpg, .odp, .ods, .odt, .pdf, ." |
| 49 | 49 | "png, .ppt, .pptx, .xlx e .xlsx" |
| 50 | 50 | |
| 51 | -#: file_link/models.py:26 | |
| 51 | +#: file_link/models.py:27 | |
| 52 | 52 | msgid "File" |
| 53 | 53 | msgstr "Arquivo" |
| 54 | 54 | |
| 55 | -#: file_link/models.py:29 | |
| 55 | +#: file_link/models.py:30 | |
| 56 | 56 | msgid "File Link" |
| 57 | 57 | msgstr "Link para Arquivo" |
| 58 | 58 | |
| 59 | -#: file_link/models.py:30 | |
| 59 | +#: file_link/models.py:31 | |
| 60 | 60 | msgid "File Links" |
| 61 | 61 | msgstr "Links para Arquivo" |
| 62 | 62 | |
| 63 | -#: file_link/models.py:49 | |
| 63 | +#: file_link/models.py:50 | |
| 64 | 64 | msgid "Are you sure you want delete the file link" |
| 65 | 65 | msgstr "Você tem certeza que deseja remover o Link para Arquivo" |
| 66 | 66 | |
| ... | ... | @@ -76,31 +76,35 @@ msgstr "Clique ou solte o arquivo aqui" |
| 76 | 76 | msgid "The file could not exceed 10MB." |
| 77 | 77 | msgstr "O arquivo não pode exceder 10MB." |
| 78 | 78 | |
| 79 | -#: file_link/templates/file_links/_form.html:69 | |
| 79 | +#: file_link/templates/file_links/_form.html:76 | |
| 80 | +msgid "File not supported." | |
| 81 | +msgstr "Arquivo não suportado." | |
| 82 | + | |
| 83 | +#: file_link/templates/file_links/_form.html:80 | |
| 80 | 84 | msgid "Common resources settings" |
| 81 | 85 | msgstr "Configurações comuns à todos os recursos" |
| 82 | 86 | |
| 83 | -#: file_link/templates/file_links/_form.html:118 | |
| 87 | +#: file_link/templates/file_links/_form.html:129 | |
| 84 | 88 | msgid "Pendencies Notifications" |
| 85 | 89 | msgstr "Notificações de Pendências" |
| 86 | 90 | |
| 87 | -#: file_link/templates/file_links/_form.html:134 | |
| 91 | +#: file_link/templates/file_links/_form.html:145 | |
| 88 | 92 | msgid "Action not performed by the user" |
| 89 | 93 | msgstr "Ação não realizada pelo usuário" |
| 90 | 94 | |
| 91 | -#: file_link/templates/file_links/_form.html:160 | |
| 95 | +#: file_link/templates/file_links/_form.html:171 | |
| 92 | 96 | msgid "Wished period" |
| 93 | 97 | msgstr "Período desejado" |
| 94 | 98 | |
| 95 | -#: file_link/templates/file_links/_form.html:256 | |
| 99 | +#: file_link/templates/file_links/_form.html:267 | |
| 96 | 100 | msgid "Attribute students to file link" |
| 97 | 101 | msgstr "Atribuir estudantes ao Link para Arquivo" |
| 98 | 102 | |
| 99 | -#: file_link/templates/file_links/_form.html:276 | |
| 103 | +#: file_link/templates/file_links/_form.html:287 | |
| 100 | 104 | msgid "Attribute groups to file link" |
| 101 | 105 | msgstr "Atribuir grupos de estudo ao Link para Arquivo" |
| 102 | 106 | |
| 103 | -#: file_link/templates/file_links/_form.html:322 | |
| 107 | +#: file_link/templates/file_links/_form.html:333 | |
| 104 | 108 | msgid "Save" |
| 105 | 109 | msgstr "Salvar" |
| 106 | 110 | |
| ... | ... | @@ -180,12 +184,12 @@ msgstr "Enviar" |
| 180 | 184 | msgid "Edit: " |
| 181 | 185 | msgstr "Editar: " |
| 182 | 186 | |
| 183 | -#: file_link/views.py:121 file_link/views.py:134 file_link/views.py:244 | |
| 184 | -#: file_link/views.py:246 file_link/views.py:262 file_link/views.py:264 | |
| 187 | +#: file_link/views.py:121 file_link/views.py:134 file_link/views.py:245 | |
| 188 | +#: file_link/views.py:247 file_link/views.py:263 file_link/views.py:265 | |
| 185 | 189 | msgid "Visualize" |
| 186 | 190 | msgstr "Visualizar" |
| 187 | 191 | |
| 188 | -#: file_link/views.py:205 | |
| 192 | +#: file_link/views.py:206 | |
| 189 | 193 | #, python-format |
| 190 | 194 | msgid "" |
| 191 | 195 | "The File Link \"%s\" was added to the Topic \"%s\" of the virtual " |
| ... | ... | @@ -194,16 +198,16 @@ msgstr "" |
| 194 | 198 | "O Link para Arquivo \"%s\" foi adicionado ao tópico \"%s\" do ambiente " |
| 195 | 199 | "virtual \"%s\" com sucesso!" |
| 196 | 200 | |
| 197 | -#: file_link/views.py:308 | |
| 201 | +#: file_link/views.py:309 | |
| 198 | 202 | msgid "Update File Link" |
| 199 | 203 | msgstr "Atualizar Link para Arquivo" |
| 200 | 204 | |
| 201 | -#: file_link/views.py:319 | |
| 205 | +#: file_link/views.py:321 | |
| 202 | 206 | #, python-format |
| 203 | 207 | msgid "The File Link \"%s\" was updated successfully!" |
| 204 | 208 | msgstr "O Link para Arquivo \"%s\" foi atualizado com sucesso!" |
| 205 | 209 | |
| 206 | -#: file_link/views.py:346 | |
| 210 | +#: file_link/views.py:348 | |
| 207 | 211 | #, python-format |
| 208 | 212 | msgid "" |
| 209 | 213 | "The File Link \"%s\" was removed successfully from virtual environment \"%s" |
| ... | ... | @@ -212,57 +216,54 @@ msgstr "" |
| 212 | 216 | "O Link para Arquivo \"%s\" foi removido do ambiente virtual \"%s\" com " |
| 213 | 217 | "sucesso!" |
| 214 | 218 | |
| 215 | -#: file_link/views.py:405 | |
| 219 | +#: file_link/views.py:407 | |
| 216 | 220 | msgid "File Link Reports" |
| 217 | 221 | msgstr "Relatŕios de Link para Arquivo" |
| 218 | 222 | |
| 219 | -#: file_link/views.py:424 | |
| 223 | +#: file_link/views.py:426 | |
| 220 | 224 | msgid "Realized" |
| 221 | 225 | msgstr "Realizada" |
| 222 | 226 | |
| 223 | -#: file_link/views.py:424 | |
| 227 | +#: file_link/views.py:426 | |
| 224 | 228 | msgid "Unrealized" |
| 225 | 229 | msgstr "Não Realizada" |
| 226 | 230 | |
| 227 | -#: file_link/views.py:424 | |
| 231 | +#: file_link/views.py:426 | |
| 228 | 232 | msgid "Historic" |
| 229 | 233 | msgstr "Histórico" |
| 230 | 234 | |
| 231 | -#: file_link/views.py:439 file_link/views.py:447 | |
| 235 | +#: file_link/views.py:441 file_link/views.py:449 | |
| 232 | 236 | msgid "View" |
| 233 | 237 | msgstr "Visualizar" |
| 234 | 238 | |
| 235 | -#: file_link/views.py:448 | |
| 239 | +#: file_link/views.py:450 | |
| 236 | 240 | msgid "File link" |
| 237 | 241 | msgstr "Link para Arquivo" |
| 238 | 242 | |
| 239 | -#: file_link/views.py:453 | |
| 243 | +#: file_link/views.py:455 | |
| 240 | 244 | msgid "Actions about resource" |
| 241 | 245 | msgstr "Ações sobre o recurso" |
| 242 | 246 | |
| 243 | -#: file_link/views.py:454 | |
| 247 | +#: file_link/views.py:456 | |
| 244 | 248 | msgid "Quantity" |
| 245 | 249 | msgstr "Quantidade" |
| 246 | 250 | |
| 247 | -#: file_link/views.py:501 | |
| 251 | +#: file_link/views.py:503 | |
| 248 | 252 | msgid "[Photo]" |
| 249 | 253 | msgstr "[Imagem]" |
| 250 | 254 | |
| 251 | -#: file_link/views.py:513 | |
| 255 | +#: file_link/views.py:515 | |
| 252 | 256 | #, python-format |
| 253 | 257 | msgid "Last message in %s" |
| 254 | 258 | msgstr "Última mensagem em %s" |
| 255 | 259 | |
| 256 | -#: file_link/views.py:522 | |
| 260 | +#: file_link/views.py:524 | |
| 257 | 261 | msgid "The message was successfull sent!" |
| 258 | 262 | msgstr "A mensagem foi enviada com sucesso!" |
| 259 | 263 | |
| 260 | -#: file_link/views.py:524 | |
| 264 | +#: file_link/views.py:526 | |
| 261 | 265 | msgid "No user selected!" |
| 262 | 266 | msgstr "Nenhum usuário selecionado!" |
| 263 | 267 | |
| 264 | -#~ msgid "File not supported." | |
| 265 | -#~ msgstr "Arquivo não suportado." | |
| 266 | - | |
| 267 | 268 | #~ msgid "Delete" |
| 268 | 269 | #~ msgstr "Remover" | ... | ... |
file_link/serializers.py
| ... | ... | @@ -44,7 +44,7 @@ class SimpleFileLinkSerializer(serializers.ModelSerializer): |
| 44 | 44 | |
| 45 | 45 | path = files.extract(data["file_content"], dst_path) |
| 46 | 46 | |
| 47 | - new_name = "files/file_" + str(time.time()) + os.path.splitext(data["file_content"])[1] | |
| 47 | + new_name = os.path.join("files","file_" + str(time.time()) + os.path.splitext(data["file_content"])[1]) | |
| 48 | 48 | |
| 49 | 49 | os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_name)) |
| 50 | 50 | |
| ... | ... | @@ -87,7 +87,7 @@ class SimpleFileLinkSerializer(serializers.ModelSerializer): |
| 87 | 87 | if topic_exist.exists(): |
| 88 | 88 | topic = topic_exist[0] |
| 89 | 89 | else: |
| 90 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
| 90 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
| 91 | 91 | |
| 92 | 92 | data["topic"] = topic |
| 93 | 93 | else: |
| ... | ... | @@ -161,7 +161,7 @@ class CompleteFileLinkSerializer(serializers.ModelSerializer): |
| 161 | 161 | |
| 162 | 162 | path = files.extract(data["file_content"], dst_path) |
| 163 | 163 | |
| 164 | - new_name = "files/file_" + str(time.time()) + os.path.splitext(data["file_content"])[1] | |
| 164 | + new_name = os.path.join("files","file_" + str(time.time()) + os.path.splitext(data["file_content"])[1]) | |
| 165 | 165 | |
| 166 | 166 | os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_name)) |
| 167 | 167 | |
| ... | ... | @@ -197,7 +197,7 @@ class CompleteFileLinkSerializer(serializers.ModelSerializer): |
| 197 | 197 | if topic_exist.exists(): |
| 198 | 198 | topic = topic_exist[0] |
| 199 | 199 | else: |
| 200 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
| 200 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
| 201 | 201 | |
| 202 | 202 | data["topic"] = topic |
| 203 | 203 | else: | ... | ... |
file_link/templates/file_links/_form.html
| ... | ... | @@ -234,7 +234,7 @@ |
| 234 | 234 | <div class="col-md-12"> |
| 235 | 235 | <a data-parent="#professors_accordion" data-toggle="collapse" href="#students"> |
| 236 | 236 | <h4 class="panel-title"> |
| 237 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{{ form.students.label }}</label> | |
| 237 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{% trans 'Students' %}</label> | |
| 238 | 238 | </h4> |
| 239 | 239 | </a> |
| 240 | 240 | </div> | ... | ... |
goals/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| ... | ... | @@ -403,7 +403,7 @@ msgstr "Submeteu" |
| 403 | 403 | msgid "%s Instance" |
| 404 | 404 | msgstr "Instância de %s" |
| 405 | 405 | |
| 406 | -#: goals/utils.py:59 goals/views.py:1224 | |
| 406 | +#: goals/utils.py:61 goals/views.py:1224 | |
| 407 | 407 | #, python-format |
| 408 | 408 | msgid "Last message in %s" |
| 409 | 409 | msgstr "Última mensagem em %s" | ... | ... |
goals/serializers.py
| ... | ... | @@ -63,7 +63,7 @@ class SimpleGoalSerializer(serializers.ModelSerializer): |
| 63 | 63 | if topic_exist.exists(): |
| 64 | 64 | topic = topic_exist[0] |
| 65 | 65 | else: |
| 66 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
| 66 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
| 67 | 67 | |
| 68 | 68 | data["topic"] = topic |
| 69 | 69 | else: |
| ... | ... | @@ -154,7 +154,7 @@ class CompleteGoalSerializer(serializers.ModelSerializer): |
| 154 | 154 | if topic_exist.exists(): |
| 155 | 155 | topic = topic_exist[0] |
| 156 | 156 | else: |
| 157 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
| 157 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
| 158 | 158 | |
| 159 | 159 | data["topic"] = topic |
| 160 | 160 | else: | ... | ... |
goals/utils.py
| ... | ... | @@ -10,6 +10,8 @@ from django.utils.translation import ugettext_lazy as _ |
| 10 | 10 | |
| 11 | 11 | from channels import Group |
| 12 | 12 | |
| 13 | +from api.utils import sendChatPushNotification | |
| 14 | + | |
| 13 | 15 | from chat.models import Conversation, TalkMessages, ChatVisualizations |
| 14 | 16 | from users.models import User |
| 15 | 17 | |
| ... | ... | @@ -63,5 +65,7 @@ def brodcast_dificulties(request, message, subject): |
| 63 | 65 | |
| 64 | 66 | Group("user-%s" % p.id).send({'text': notification}) |
| 65 | 67 | |
| 68 | + sendChatPushNotification(p, msg) | |
| 69 | + | |
| 66 | 70 | ChatVisualizations.objects.create(viewed = False, message = msg, user = p) |
| 67 | 71 | ... | ... |
links/forms.py
| ... | ... | @@ -3,7 +3,9 @@ from django import forms |
| 3 | 3 | from django.utils.translation import ugettext_lazy as _ |
| 4 | 4 | from django.utils.html import strip_tags |
| 5 | 5 | from django.core.exceptions import ValidationError |
| 6 | + | |
| 6 | 7 | from subjects.models import Tag |
| 8 | +from subjects.forms import ParticipantsMultipleChoiceField | |
| 7 | 9 | |
| 8 | 10 | from pendencies.forms import PendenciesForm |
| 9 | 11 | from .models import Link |
| ... | ... | @@ -11,6 +13,8 @@ from .models import Link |
| 11 | 13 | class LinkForm(forms.ModelForm): |
| 12 | 14 | subject = None |
| 13 | 15 | MAX_UPLOAD_SIZE = 10*1024*1024 |
| 16 | + | |
| 17 | + students = ParticipantsMultipleChoiceField(queryset = None, required = False) | |
| 14 | 18 | |
| 15 | 19 | def __init__(self, *args, **kwargs): |
| 16 | 20 | super(LinkForm, self).__init__(*args, **kwargs) | ... | ... |
links/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| ... | ... | @@ -18,27 +18,27 @@ msgstr "" |
| 18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
| 19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
| 20 | 20 | |
| 21 | -#: links/forms.py:27 | |
| 21 | +#: links/forms.py:31 | |
| 22 | 22 | msgid "Tags" |
| 23 | 23 | msgstr "Tags" |
| 24 | 24 | |
| 25 | -#: links/forms.py:28 | |
| 25 | +#: links/forms.py:32 | |
| 26 | 26 | msgid "Website URL" |
| 27 | 27 | msgstr "URL do site:" |
| 28 | 28 | |
| 29 | -#: links/forms.py:34 | |
| 29 | +#: links/forms.py:38 | |
| 30 | 30 | msgid "Link name" |
| 31 | 31 | msgstr "Nome do Link" |
| 32 | 32 | |
| 33 | -#: links/forms.py:35 | |
| 33 | +#: links/forms.py:39 | |
| 34 | 34 | msgid "End View" |
| 35 | 35 | msgstr "" |
| 36 | 36 | |
| 37 | -#: links/forms.py:36 | |
| 37 | +#: links/forms.py:40 | |
| 38 | 38 | msgid "End View Date" |
| 39 | 39 | msgstr "Data final para visualizar" |
| 40 | 40 | |
| 41 | -#: links/forms.py:64 | |
| 41 | +#: links/forms.py:68 | |
| 42 | 42 | msgid "There is already a link with this name on this subject" |
| 43 | 43 | msgstr "Ja existe um link com este nome neste Assunto" |
| 44 | 44 | ... | ... |
links/serializers.py
| ... | ... | @@ -51,7 +51,7 @@ class SimpleLinkSerializer(serializers.ModelSerializer): |
| 51 | 51 | if topic_exist.exists(): |
| 52 | 52 | topic = topic_exist[0] |
| 53 | 53 | else: |
| 54 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
| 54 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
| 55 | 55 | |
| 56 | 56 | data["topic"] = topic |
| 57 | 57 | else: |
| ... | ... | @@ -134,7 +134,7 @@ class CompleteLinkSerializer(serializers.ModelSerializer): |
| 134 | 134 | if topic_exist.exists(): |
| 135 | 135 | topic = topic_exist[0] |
| 136 | 136 | else: |
| 137 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
| 137 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
| 138 | 138 | |
| 139 | 139 | data["topic"] = topic |
| 140 | 140 | else: | ... | ... |
links/templates/links/_form.html
| ... | ... | @@ -219,7 +219,7 @@ |
| 219 | 219 | <div class="col-md-12"> |
| 220 | 220 | <a data-parent="#professors_accordion" data-toggle="collapse" href="#students"> |
| 221 | 221 | <h4 class="panel-title"> |
| 222 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{{ form.students.label }}</label> | |
| 222 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{% trans 'Students' %}</label> | |
| 223 | 223 | </h4> |
| 224 | 224 | </a> |
| 225 | 225 | </div> | ... | ... |
log/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
mailsender/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
mural/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| ... | ... | @@ -32,7 +32,8 @@ msgstr "Pedir ajuda" |
| 32 | 32 | msgid "This field is required." |
| 33 | 33 | msgstr "Esse campo é obrigatório." |
| 34 | 34 | |
| 35 | -#: mural/forms.py:38 mural/forms.py:123 | |
| 35 | +#: mural/forms.py:38 mural/forms.py:123 mural/templates/mural/_form.html:103 | |
| 36 | +#: mural/templates/mural/_form_comment.html:68 | |
| 36 | 37 | msgid "The image is too large. It should have less than 5MB." |
| 37 | 38 | msgstr "A imagem é muito grande. Ela deve possuir 5MB ou menos." |
| 38 | 39 | |
| ... | ... | @@ -40,7 +41,8 @@ msgstr "A imagem é muito grande. Ela deve possuir 5MB ou menos." |
| 40 | 41 | msgid "Choose an especific resource" |
| 41 | 42 | msgstr "Escolha um recurso específico" |
| 42 | 43 | |
| 43 | -#: mural/models.py:18 | |
| 44 | +#: mural/models.py:18 mural/templates/mural/_form.html:104 | |
| 45 | +#: mural/templates/mural/_form_comment.html:69 | |
| 44 | 46 | msgid "File not supported." |
| 45 | 47 | msgstr "Arquivo não suportado." |
| 46 | 48 | |
| ... | ... | @@ -97,7 +99,7 @@ msgid "Resource" |
| 97 | 99 | msgstr "Recurso" |
| 98 | 100 | |
| 99 | 101 | #: mural/models.py:105 mural/models.py:119 |
| 100 | -#: mural/templates/mural/_form_comment.html:66 | |
| 102 | +#: mural/templates/mural/_form_comment.html:76 | |
| 101 | 103 | msgid "Comment" |
| 102 | 104 | msgstr "Comentar" |
| 103 | 105 | |
| ... | ... | @@ -119,14 +121,14 @@ msgstr "Clique ou solte a imagem aqui" |
| 119 | 121 | msgid "The picture could not exceed 5MB." |
| 120 | 122 | msgstr "A imagem não pode exceder 5MB." |
| 121 | 123 | |
| 122 | -#: mural/templates/mural/_form.html:100 | |
| 124 | +#: mural/templates/mural/_form.html:111 | |
| 123 | 125 | msgctxt "button" |
| 124 | 126 | msgid "Post" |
| 125 | 127 | msgstr "Postar" |
| 126 | 128 | |
| 127 | -#: mural/templates/mural/_form.html:101 | |
| 128 | -#: mural/templates/mural/_form_comment.html:67 | |
| 129 | -#: mural/templates/mural/_form_comment.html:85 | |
| 129 | +#: mural/templates/mural/_form.html:112 | |
| 130 | +#: mural/templates/mural/_form_comment.html:77 | |
| 131 | +#: mural/templates/mural/_form_comment.html:95 | |
| 130 | 132 | msgid "Cancel" |
| 131 | 133 | msgstr "Cancelar" |
| 132 | 134 | |
| ... | ... | @@ -134,15 +136,15 @@ msgstr "Cancelar" |
| 134 | 136 | msgid "Choose your photo..." |
| 135 | 137 | msgstr "Escolha sua foto..." |
| 136 | 138 | |
| 137 | -#: mural/templates/mural/_form_comment.html:78 | |
| 139 | +#: mural/templates/mural/_form_comment.html:88 | |
| 138 | 140 | msgid "Insert here the name of the user you wish to mark in this comment" |
| 139 | 141 | msgstr "Insira aqui o nome do usuário que você quer marcar nesse comentário" |
| 140 | 142 | |
| 141 | -#: mural/templates/mural/_form_comment.html:84 | |
| 143 | +#: mural/templates/mural/_form_comment.html:94 | |
| 142 | 144 | msgid "Mark" |
| 143 | 145 | msgstr "Marcar" |
| 144 | 146 | |
| 145 | -#: mural/templates/mural/_form_comment.html:100 | |
| 147 | +#: mural/templates/mural/_form_comment.html:110 | |
| 146 | 148 | msgid "Mark User" |
| 147 | 149 | msgstr "Marcar Usuário" |
| 148 | 150 | ... | ... |
mural/models.py
| ... | ... | @@ -10,9 +10,9 @@ from subjects.models import Subject |
| 10 | 10 | from topics.models import KnowsChild, Resource |
| 11 | 11 | from users.models import User |
| 12 | 12 | |
| 13 | -def validate_img_extension(value): | |
| 14 | - valid_formats = ['image/jpeg','image/x-citrix-jpeg','image/png','image/x-citrix-png','image/x-png'] | |
| 13 | +valid_formats = ['image/jpeg','image/x-citrix-jpeg','image/png','image/x-citrix-png','image/x-png','image/gif'] | |
| 15 | 14 | |
| 15 | +def validate_img_extension(value): | |
| 16 | 16 | if hasattr(value.file, 'content_type'): |
| 17 | 17 | if not value.file.content_type in valid_formats: |
| 18 | 18 | raise ValidationError(_('File not supported.')) | ... | ... |
mural/templates/mural/_form.html
| ... | ... | @@ -80,24 +80,35 @@ |
| 80 | 80 | |
| 81 | 81 | <span id="helpBlock" class="help-block">{{ form.image.help_text }}</span> |
| 82 | 82 | |
| 83 | - {% if form.image.errors %} | |
| 84 | - <div class="alert alert-danger alert-dismissible" role="alert"> | |
| 85 | - <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
| 86 | - <span aria-hidden="true">×</span> | |
| 87 | - </button> | |
| 88 | - <ul> | |
| 89 | - {% for error in form.image.errors %} | |
| 90 | - <li>{{ error }}</li> | |
| 91 | - {% endfor %} | |
| 92 | - </ul> | |
| 93 | - </div> | |
| 94 | - {% endif %} | |
| 83 | + </div> | |
| 84 | + | |
| 85 | + {% if form.image.errors %} | |
| 86 | + <div class="alert alert-danger alert-dismissible" role="alert"> | |
| 87 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
| 88 | + <span aria-hidden="true">×</span> | |
| 89 | + </button> | |
| 90 | + <ul> | |
| 91 | + {% for error in form.image.errors %} | |
| 92 | + <li>{{ error }}</li> | |
| 93 | + {% endfor %} | |
| 94 | + </ul> | |
| 95 | + </div> | |
| 96 | + {% endif %} | |
| 97 | + | |
| 98 | + <div class="alert alert-danger alert-dismissible client-file-errors" style="display:none" role="alert"> | |
| 99 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
| 100 | + <span aria-hidden="true">×</span> | |
| 101 | + </button> | |
| 102 | + <ul> | |
| 103 | + <li class="size" style="display:none">{% trans "The image is too large. It should have less than 5MB." %}</li> | |
| 104 | + <li class="format" style="display:none">{% trans 'File not supported.' %}</li> | |
| 105 | + </ul> | |
| 95 | 106 | </div> |
| 96 | 107 | </form> |
| 97 | 108 | </div> |
| 98 | 109 | <div class="modal-footer"> |
| 99 | 110 | <div class="col-md-12"> |
| 100 | - <button type="submit" id="button" form="post-form" class="btn btn-success btn-raised post-button pull-left">{% trans "Post" context "button"%}</button> | |
| 111 | + <button type="submit" id="button" form="post-form" class="btn btn-success btn-raised post-button pull-left">{% trans "Post" context "button" %}</button> | |
| 101 | 112 | <button type="button" class="btn btn-raised btn-default pull-right" data-dismiss="modal">{% trans "Cancel" %}</button> |
| 102 | 113 | </div> |
| 103 | 114 | </div> |
| ... | ... | @@ -147,10 +158,33 @@ |
| 147 | 158 | // file selection |
| 148 | 159 | function FileSelectHandler(e) { |
| 149 | 160 | var files = e.target.files || e.dataTransfer.files, |
| 150 | - parent = $(e.target.offsetParent); | |
| 161 | + parent = $(e.target.offsetParent), | |
| 162 | + max_size = 5*1024*1024; | |
| 163 | + | |
| 164 | + $(".client-file-errors").hide(); | |
| 165 | + $(".size").hide(); | |
| 166 | + $(".format").hide(); | |
| 167 | + $("#button").prop('disable', false); | |
| 168 | + $("#button").prop('disabled', false); | |
| 151 | 169 | |
| 152 | 170 | // process all File objects |
| 153 | 171 | for (var i = 0, f; f = files[i]; i++) { |
| 172 | + if (f.size > max_size) { | |
| 173 | + $("#button").prop('disable', true); | |
| 174 | + $("#button").prop('disabled', true); | |
| 175 | + | |
| 176 | + $(".client-file-errors").show(); | |
| 177 | + $(".size").show(); | |
| 178 | + } | |
| 179 | + | |
| 180 | + if (!f.type.match(/^image\//)) { | |
| 181 | + $("#button").prop('disable', true); | |
| 182 | + $("#button").prop('disabled', true); | |
| 183 | + | |
| 184 | + $(".client-file-errors").show(); | |
| 185 | + $(".format").show(); | |
| 186 | + } | |
| 187 | + | |
| 154 | 188 | parent.find('.filedrag').html(f.name); |
| 155 | 189 | } |
| 156 | 190 | } | ... | ... |
mural/templates/mural/_form_comment.html
| ... | ... | @@ -45,19 +45,29 @@ |
| 45 | 45 | </div> |
| 46 | 46 | |
| 47 | 47 | <span id="helpBlock" class="help-block">{{ form.image.help_text }}</span> |
| 48 | + </div> | |
| 48 | 49 | |
| 49 | - {% if form.image.errors %} | |
| 50 | - <div class="alert alert-danger alert-dismissible" role="alert"> | |
| 51 | - <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
| 52 | - <span aria-hidden="true">×</span> | |
| 53 | - </button> | |
| 54 | - <ul> | |
| 55 | - {% for error in form.image.errors %} | |
| 56 | - <li>{{ error }}</li> | |
| 57 | - {% endfor %} | |
| 58 | - </ul> | |
| 59 | - </div> | |
| 60 | - {% endif %} | |
| 50 | + {% if form.image.errors %} | |
| 51 | + <div class="alert alert-danger alert-dismissible" role="alert"> | |
| 52 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
| 53 | + <span aria-hidden="true">×</span> | |
| 54 | + </button> | |
| 55 | + <ul> | |
| 56 | + {% for error in form.image.errors %} | |
| 57 | + <li>{{ error }}</li> | |
| 58 | + {% endfor %} | |
| 59 | + </ul> | |
| 60 | + </div> | |
| 61 | + {% endif %} | |
| 62 | + | |
| 63 | + <div class="alert alert-danger alert-dismissible client-file-errors" style="display:none" role="alert"> | |
| 64 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
| 65 | + <span aria-hidden="true">×</span> | |
| 66 | + </button> | |
| 67 | + <ul> | |
| 68 | + <li class="size" style="display:none">{% trans "The image is too large. It should have less than 5MB." %}</li> | |
| 69 | + <li class="format" style="display:none">{% trans 'File not supported.' %}</li> | |
| 70 | + </ul> | |
| 61 | 71 | </div> |
| 62 | 72 | </form> |
| 63 | 73 | </div> |
| ... | ... | @@ -99,6 +109,8 @@ |
| 99 | 109 | contents: '<i class="fa fa-user"/>', |
| 100 | 110 | tooltip: '{% trans "Mark User" %}', |
| 101 | 111 | click: function () { |
| 112 | + context.invoke('saveRange'); | |
| 113 | + | |
| 102 | 114 | var modal_content = $("#add-user-modal").html(); |
| 103 | 115 | var modal = document.createElement('div'); |
| 104 | 116 | $(modal).addClass('modal'); |
| ... | ... | @@ -119,12 +131,9 @@ |
| 119 | 131 | $(node).addClass('marked_user'); |
| 120 | 132 | $(node).html(value); |
| 121 | 133 | |
| 122 | - var code = context.invoke('code'); | |
| 123 | - | |
| 124 | - var new_code = $(code).append(node).append(" "); | |
| 125 | - | |
| 126 | - context.invoke('code', new_code); | |
| 127 | - | |
| 134 | + context.invoke('restoreRange'); | |
| 135 | + context.invoke('pasteHTML', node); | |
| 136 | + | |
| 128 | 137 | $(modal).modal('hide'); |
| 129 | 138 | }); |
| 130 | 139 | } |
| ... | ... | @@ -225,10 +234,33 @@ |
| 225 | 234 | // file selection |
| 226 | 235 | function FileSelectHandler(e) { |
| 227 | 236 | var files = e.target.files || e.dataTransfer.files, |
| 228 | - parent = $(e.target.offsetParent); | |
| 237 | + parent = $(e.target.offsetParent), | |
| 238 | + max_size = 5*1024*1024; | |
| 239 | + | |
| 240 | + $(".client-file-errors").hide(); | |
| 241 | + $(".size").hide(); | |
| 242 | + $(".format").hide(); | |
| 243 | + $("#button").prop('disable', false); | |
| 244 | + $("#button").prop('disabled', false); | |
| 229 | 245 | |
| 230 | 246 | // process all File objects |
| 231 | 247 | for (var i = 0, f; f = files[i]; i++) { |
| 248 | + if (f.size > max_size) { | |
| 249 | + $("#button").prop('disable', true); | |
| 250 | + $("#button").prop('disabled', true); | |
| 251 | + | |
| 252 | + $(".client-file-errors").show(); | |
| 253 | + $(".size").show(); | |
| 254 | + } | |
| 255 | + | |
| 256 | + if (!f.type.match(/^image\//)) { | |
| 257 | + $("#button").prop('disable', true); | |
| 258 | + $("#button").prop('disabled', true); | |
| 259 | + | |
| 260 | + $(".client-file-errors").show(); | |
| 261 | + $(".format").show(); | |
| 262 | + } | |
| 263 | + | |
| 232 | 264 | parent.find('.filedrag').html(f.name); |
| 233 | 265 | } |
| 234 | 266 | } | ... | ... |
news/forms.py
| ... | ... | @@ -31,7 +31,7 @@ class NewsForm(forms.ModelForm): |
| 31 | 31 | image = Image.open(self.instance.image) |
| 32 | 32 | if not x is None: |
| 33 | 33 | cropped_image = image.crop((x, y, w+x, h+y)) |
| 34 | - resized_image = cropped_image.resize((1200, 250), Image.ANTIALIAS) | |
| 34 | + resized_image = cropped_image.resize((1200, 400), Image.ANTIALIAS) | |
| 35 | 35 | |
| 36 | 36 | folder_path = join(settings.MEDIA_ROOT, 'news') |
| 37 | 37 | #check if the folder already exists | ... | ... |
news/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| ... | ... | @@ -22,7 +22,7 @@ msgstr "" |
| 22 | 22 | msgid "This field is required" |
| 23 | 23 | msgstr "Este campo é obrigatório." |
| 24 | 24 | |
| 25 | -#: news/forms.py:74 | |
| 25 | +#: news/forms.py:74 news/templates/news/_form.html:72 | |
| 26 | 26 | msgid "The image is too large. It should have less than 5MB." |
| 27 | 27 | msgstr "A imagem é muito grande. Ela deve ter menos que 5MB." |
| 28 | 28 | |
| ... | ... | @@ -30,7 +30,7 @@ msgstr "A imagem é muito grande. Ela deve ter menos que 5MB." |
| 30 | 30 | msgid "This field is required." |
| 31 | 31 | msgstr "Este campo é obrigatório." |
| 32 | 32 | |
| 33 | -#: news/models.py:15 | |
| 33 | +#: news/models.py:15 news/templates/news/_form.html:73 | |
| 34 | 34 | msgid "File not supported." |
| 35 | 35 | msgstr "Arquivo não suportado" |
| 36 | 36 | |
| ... | ... | @@ -58,19 +58,27 @@ msgstr "Data de criação" |
| 58 | 58 | msgid "Creator" |
| 59 | 59 | msgstr "Autor" |
| 60 | 60 | |
| 61 | -#: news/models.py:25 news/models.py:26 news/templates/news/list.html:11 | |
| 61 | +#: news/models.py:26 news/models.py:27 news/templates/news/list.html:11 | |
| 62 | 62 | msgid "News" |
| 63 | 63 | msgstr "Notícia" |
| 64 | 64 | |
| 65 | -#: news/templates/news/_form.html:12 | |
| 65 | +#: news/templates/news/_form.html:14 | |
| 66 | 66 | msgid "Choose your photo..." |
| 67 | 67 | msgstr "Escolha a foto" |
| 68 | 68 | |
| 69 | -#: news/templates/news/_form.html:55 | |
| 69 | +#: news/templates/news/_form.html:28 | |
| 70 | +msgid "Click or drop the file here" | |
| 71 | +msgstr "Clique ou solte o arquivo aqui." | |
| 72 | + | |
| 73 | +#: news/templates/news/_form.html:30 | |
| 74 | +msgid "The photo could not exceed 5MB." | |
| 75 | +msgstr "A imagem não pode exceder 5MB." | |
| 76 | + | |
| 77 | +#: news/templates/news/_form.html:81 | |
| 70 | 78 | msgid "Save" |
| 71 | 79 | msgstr "Salvar" |
| 72 | 80 | |
| 73 | -#: news/templates/news/_form.html:58 | |
| 81 | +#: news/templates/news/_form.html:84 | |
| 74 | 82 | msgid "Cancel" |
| 75 | 83 | msgstr "Cancelar" |
| 76 | 84 | |
| ... | ... | @@ -104,7 +112,7 @@ msgid "Search by title, author or date" |
| 104 | 112 | msgstr "Pesquisar por título, autor ou data" |
| 105 | 113 | |
| 106 | 114 | #: news/templates/news/list.html:52 news/templates/news/search.html:45 |
| 107 | -#: news/views.py:109 | |
| 115 | +#: news/views.py:103 | |
| 108 | 116 | msgid "Create News" |
| 109 | 117 | msgstr "Criar notícia" |
| 110 | 118 | |
| ... | ... | @@ -120,11 +128,11 @@ msgstr "Nenhuma notícia encontrada" |
| 120 | 128 | msgid "Search News" |
| 121 | 129 | msgstr "Pesquisar Notícia" |
| 122 | 130 | |
| 123 | -#: news/templates/news/update.html:7 news/views.py:137 | |
| 131 | +#: news/templates/news/update.html:7 news/views.py:147 | |
| 124 | 132 | msgid "Update News" |
| 125 | 133 | msgstr "Atualizar Notícia" |
| 126 | 134 | |
| 127 | -#: news/templates/news/view.html:32 | |
| 135 | +#: news/templates/news/view.html:35 | |
| 128 | 136 | msgid "Print News" |
| 129 | 137 | msgstr "Imprimir Notícia" |
| 130 | 138 | |
| ... | ... | @@ -132,7 +140,7 @@ msgstr "Imprimir Notícia" |
| 132 | 140 | msgid "Visualize News" |
| 133 | 141 | msgstr "Visualizar Notícia" |
| 134 | 142 | |
| 135 | -#: news/views.py:103 news/views.py:131 | |
| 143 | +#: news/views.py:109 news/views.py:153 | |
| 136 | 144 | msgid "News successfully created!" |
| 137 | 145 | msgstr "Notícia criada com sucesso" |
| 138 | 146 | |
| ... | ... | @@ -144,12 +152,3 @@ msgstr "Notícia \"%s\" removida com sucesso" |
| 144 | 152 | #: news/views.py:228 |
| 145 | 153 | msgid "Delete News" |
| 146 | 154 | msgstr "Apagar Notícia" |
| 147 | - | |
| 148 | -#~ msgid "Create news" | |
| 149 | -#~ msgstr "Criar notícia" | |
| 150 | - | |
| 151 | -#~ msgid "There is already a news with this name" | |
| 152 | -#~ msgstr "Já existe uma notícia com esse nome" | |
| 153 | - | |
| 154 | -#~ msgid "Name" | |
| 155 | -#~ msgstr "Nome" | ... | ... |
news/models.py
| ... | ... | @@ -7,9 +7,9 @@ from django.utils.translation import ugettext_lazy as _ |
| 7 | 7 | from django.core.exceptions import ValidationError |
| 8 | 8 | from users.models import User |
| 9 | 9 | |
| 10 | -def validate_img_extension(value): | |
| 11 | - valid_formats = ['image/jpeg','image/x-citrix-jpeg','image/png','image/x-citrix-png','image/x-png'] | |
| 10 | +valid_formats = ['image/jpeg','image/x-citrix-jpeg','image/png','image/x-citrix-png','image/x-png'] | |
| 12 | 11 | |
| 12 | +def validate_img_extension(value): | |
| 13 | 13 | if hasattr(value.file, 'content_type'): |
| 14 | 14 | if not value.file.content_type in valid_formats: |
| 15 | 15 | raise ValidationError(_('File not supported.')) |
| ... | ... | @@ -21,6 +21,7 @@ class News(models.Model): |
| 21 | 21 | content = models.TextField(_('News Content'), blank = True) |
| 22 | 22 | create_date = models.DateTimeField(_('Create Date'), auto_now_add = True) |
| 23 | 23 | creator = models.ForeignKey(User, verbose_name = _('Creator'), related_name = "news_creator_user", null = True) |
| 24 | + | |
| 24 | 25 | class Meta: |
| 25 | 26 | verbose_name = _('News') |
| 26 | 27 | verbose_name_plural = _('News') | ... | ... |
news/templates/news/_form.html
| 1 | 1 | {% load static i18n %} |
| 2 | 2 | {% load widget_tweaks %} |
| 3 | 3 | |
| 4 | -<form method="post" action="" enctype="multipart/form-data"> | |
| 4 | +<form id="news-form" method="post" action="" enctype="multipart/form-data"> | |
| 5 | 5 | {% csrf_token %} |
| 6 | 6 | {% for field in form %} |
| 7 | 7 | <div class="form-group{% if form.has_error %} has-error {% endif %} is-fileinput col-lg-12 col-md-12 col-sm-12"> |
| 8 | 8 | {% if field.auto_id == 'id_image' %} |
| 9 | - <label for="{{ field.auto_id }}">{{ field.label }} <span>*</span></label> | |
| 10 | - {% render_field field class='form-control' %} | |
| 11 | - <div class="input-group"> | |
| 12 | - <input type="text" readonly="" class="form-control" id="pic_holder" placeholder="{% trans 'Choose your photo...' %}"> | |
| 13 | - <span class="input-group-btn input-group-sm"> | |
| 14 | - <button type="button" class="btn btn-fab btn-fab-mini"> | |
| 15 | - <i class="material-icons">image</i> | |
| 16 | - </button> | |
| 17 | - </span> | |
| 18 | - </div> | |
| 9 | + <label for="{{ field.auto_id }}">{{ field.label }} <span>*</span></label> | |
| 10 | + | |
| 11 | + {% render_field field class='file-selector' data-mimetypes=mimeTypes %} | |
| 12 | + | |
| 13 | + <div class="input-group common-file-input"> | |
| 14 | + <input type="text" readonly="" class="form-control" placeholder="{% trans 'Choose your photo...' %}"> | |
| 15 | + <span class="input-group-btn input-group-sm"> | |
| 16 | + <button type="button" class="btn btn-fab btn-fab-mini"> | |
| 17 | + <i class="material-icons">attach_file</i> | |
| 18 | + </button> | |
| 19 | + </span> | |
| 20 | + </div> | |
| 21 | + | |
| 22 | + <div class="filedrag"> | |
| 23 | + {% if news.image %} | |
| 24 | + <i class="fa fa-file-archive-o"></i> <br /> | |
| 25 | + | |
| 26 | + <small>{{ news.image.path }}</small> | |
| 27 | + {% else %} | |
| 28 | + {% trans 'Click or drop the file here' %}<br /> | |
| 29 | + | |
| 30 | + <small>{% trans 'The photo could not exceed 5MB.' %}</small> | |
| 31 | + {% endif %} | |
| 32 | + </div> | |
| 19 | 33 | |
| 20 | 34 | |
| 21 | 35 | {% elif field.auto_id == 'id_content' %} |
| ... | ... | @@ -35,19 +49,31 @@ |
| 35 | 49 | |
| 36 | 50 | {% endif %} |
| 37 | 51 | <span id="helpBlock" class="help-block">{{ field.help_text }}</span> |
| 38 | - {% if field.errors %} | |
| 39 | - <div class="alert alert-danger alert-dismissible" role="alert"> | |
| 40 | - <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
| 41 | - <span aria-hidden="true">×</span> | |
| 42 | - </button> | |
| 43 | - <ul> | |
| 44 | - {% for error in field.errors %} | |
| 45 | - <li>{{ error }}</li> | |
| 46 | - {% endfor %} | |
| 47 | - </ul> | |
| 48 | - </div> | |
| 49 | - {% endif %} | |
| 50 | 52 | </div> |
| 53 | + {% if field.errors %} | |
| 54 | + <div class="col-lg-12 col-md-12 col-sm-12 alert alert-danger alert-dismissible" role="alert"> | |
| 55 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
| 56 | + <span aria-hidden="true">×</span> | |
| 57 | + </button> | |
| 58 | + <ul> | |
| 59 | + {% for error in field.errors %} | |
| 60 | + <li>{{ error }}</li> | |
| 61 | + {% endfor %} | |
| 62 | + </ul> | |
| 63 | + </div> | |
| 64 | + {% endif %} | |
| 65 | + | |
| 66 | + {% if field.auto_id == 'id_image' %} | |
| 67 | + <div class="col-lg-12 col-md-12 col-sm-12 alert alert-danger alert-dismissible client-file-errors" style="display:none" role="alert"> | |
| 68 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
| 69 | + <span aria-hidden="true">×</span> | |
| 70 | + </button> | |
| 71 | + <ul> | |
| 72 | + <li class="size" style="display:none">{% trans "The image is too large. It should have less than 5MB." %}</li> | |
| 73 | + <li class="format" style="display:none">{% trans 'File not supported.' %}</li> | |
| 74 | + </ul> | |
| 75 | + </div> | |
| 76 | + {% endif %} | |
| 51 | 77 | {% endfor %} |
| 52 | 78 | <div class="row"> |
| 53 | 79 | <div class="col-lg-12 col-md-12 col-sm-12"> |
| ... | ... | @@ -62,5 +88,42 @@ |
| 62 | 88 | |
| 63 | 89 | </form> |
| 64 | 90 | <script src="{% static 'js/crop_news.js' %}"></script> <!-- Js for cropper--> |
| 91 | +<script type="text/javascript"> | |
| 92 | +// check if browser supports drag n drop | |
| 93 | +// call initialization file | |
| 94 | +if (window.File && window.FileList && window.FileReader) { | |
| 95 | + Init(); | |
| 96 | +} | |
| 97 | + | |
| 98 | +// initialize | |
| 99 | +function Init() { | |
| 100 | + var small = $(".file-selector"), | |
| 101 | + filedrag = $(".filedrag"), | |
| 102 | + common = $(".common-file-input"); | |
| 103 | + | |
| 104 | + // file select | |
| 105 | + small.on("change", FileSelectHandler); | |
| 106 | + | |
| 107 | + // is XHR2 available? | |
| 108 | + var xhr = new XMLHttpRequest(); | |
| 109 | + if (xhr.upload) { | |
| 110 | + // file drop | |
| 111 | + filedrag.on("drop", FileSelectHandler); | |
| 112 | + filedrag.attr('style', 'display:block'); | |
| 113 | + common.attr('style', 'display:none'); | |
| 114 | + } | |
| 115 | +} | |
| 116 | + | |
| 117 | +// file selection | |
| 118 | +function FileSelectHandler(e) { | |
| 119 | + var files = e.target.files || e.dataTransfer.files, | |
| 120 | + parent = $(e.target.offsetParent); | |
| 121 | + // process all File objects | |
| 122 | + for (var i = 0, f; f = files[i]; i++) { | |
| 123 | + parent.find('.filedrag').html(f.name); | |
| 124 | + } | |
| 125 | +} | |
| 126 | +</script> | |
| 127 | + | |
| 65 | 128 | |
| 66 | 129 | {% include 'users/modal_crop.html' %} | ... | ... |
news/templates/news/view.html
| ... | ... | @@ -29,9 +29,16 @@ |
| 29 | 29 | <div class="row-fluid panel panel-default" > |
| 30 | 30 | <div class="panel-body" id="printArea"> |
| 31 | 31 | <div class="col-md-12" style="display:inline-block"> |
| 32 | - <h2><b>{{new.title}}</b></h2> <button style="text-transform:none; text-decoration: underline;" type="button" class="pull-right btn btn-default btn-sm" id="printButton" name="button">{% trans "Print News" %} <i class="fa fa-print" aria-hidden="true"></i></button><br> | |
| 32 | + <h2><b>{{new.title}}</b></h2> | |
| 33 | + </div> | |
| 34 | + <div class="col-md-12" style="margin-top: -30px;"> | |
| 35 | + <button style="text-transform:none; text-decoration: underline;" type="button" class="pull-right btn btn-default btn-sm" id="printButton" name="button">{% trans "Print News" %} | |
| 36 | + <i class="fa fa-print" aria-hidden="true"></i></button><br> | |
| 33 | 37 | <p>{{new.creator}}, em {{new.create_date}}</p> |
| 34 | 38 | </div> |
| 39 | + <div class="col-md-12" style="margin-top: 20px; margin-bottom: 20px;"> | |
| 40 | + <span><img src="{% if new.image %}{{ new.image.url }}{% endif %}" width="100%"></span> | |
| 41 | + </div> | |
| 35 | 42 | <div class="col-md-12"> |
| 36 | 43 | <br> |
| 37 | 44 | {% autoescape off %} | ... | ... |
news/views.py
| ... | ... | @@ -8,7 +8,7 @@ from django.contrib import messages |
| 8 | 8 | from django.utils.translation import ugettext_lazy as _ |
| 9 | 9 | from django.db.models import Q, Count |
| 10 | 10 | |
| 11 | -from .models import News | |
| 11 | +from .models import News, valid_formats | |
| 12 | 12 | from .forms import NewsForm |
| 13 | 13 | |
| 14 | 14 | class VisualizeNews(LoginRequiredMixin,LogMixin,generic.ListView): |
| ... | ... | @@ -96,19 +96,19 @@ class CreateNewsView(LoginRequiredMixin,LogMixin,generic.edit.CreateView): |
| 96 | 96 | |
| 97 | 97 | super(CreateNewsView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) |
| 98 | 98 | |
| 99 | - | |
| 100 | 99 | return super(CreateNewsView, self).form_valid(form) |
| 101 | 100 | |
| 102 | - def get_success_url(self): | |
| 103 | - messages.success(self.request, _('News successfully created!')) | |
| 104 | - | |
| 105 | - return reverse_lazy('news:view', kwargs = {'slug': self.object.slug} ) | |
| 106 | - | |
| 107 | 101 | def get_context_data (self, **kwargs): |
| 108 | 102 | context = super(CreateNewsView, self).get_context_data(**kwargs) |
| 109 | 103 | context['title'] = _("Create News") |
| 104 | + context['mimeTypes'] = valid_formats | |
| 110 | 105 | |
| 111 | 106 | return context |
| 107 | + | |
| 108 | + def get_success_url(self): | |
| 109 | + messages.success(self.request, _('News successfully created!')) | |
| 110 | + | |
| 111 | + return reverse_lazy('news:view', kwargs = {'slug': self.object.slug} ) | |
| 112 | 112 | |
| 113 | 113 | class UpdateNewsView(LoginRequiredMixin,LogMixin,generic.UpdateView): |
| 114 | 114 | log_action = "update" |
| ... | ... | @@ -127,17 +127,6 @@ class UpdateNewsView(LoginRequiredMixin,LogMixin,generic.UpdateView): |
| 127 | 127 | return redirect(reverse_lazy('subjects:home')) |
| 128 | 128 | return super(UpdateNewsView, self).dispatch(request, *args, **kwargs) |
| 129 | 129 | |
| 130 | - def get_success_url(self): | |
| 131 | - messages.success(self.request, _('News successfully created!')) | |
| 132 | - | |
| 133 | - return reverse_lazy('news:view', kwargs = {'slug': self.object.slug} ) | |
| 134 | - | |
| 135 | - def get_context_data (self, **kwargs): | |
| 136 | - context = super(UpdateNewsView, self).get_context_data(**kwargs) | |
| 137 | - context['title'] = _("Update News") | |
| 138 | - | |
| 139 | - return context | |
| 140 | - | |
| 141 | 130 | def form_valid(self, form): |
| 142 | 131 | self.object = form.save(commit = False) |
| 143 | 132 | creator = self.request.user |
| ... | ... | @@ -151,8 +140,19 @@ class UpdateNewsView(LoginRequiredMixin,LogMixin,generic.UpdateView): |
| 151 | 140 | |
| 152 | 141 | super(UpdateNewsView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) |
| 153 | 142 | |
| 154 | - | |
| 155 | 143 | return super(UpdateNewsView, self).form_valid(form) |
| 144 | + | |
| 145 | + def get_context_data (self, **kwargs): | |
| 146 | + context = super(UpdateNewsView, self).get_context_data(**kwargs) | |
| 147 | + context['title'] = _("Update News") | |
| 148 | + context['mimeTypes'] = valid_formats | |
| 149 | + | |
| 150 | + return context | |
| 151 | + | |
| 152 | + def get_success_url(self): | |
| 153 | + messages.success(self.request, _('News successfully created!')) | |
| 154 | + | |
| 155 | + return reverse_lazy('news:view', kwargs = {'slug': self.object.slug} ) | |
| 156 | 156 | |
| 157 | 157 | class SearchNewsView(LoginRequiredMixin, LogMixin, generic.ListView): |
| 158 | 158 | login_url = reverse_lazy("users:login") | ... | ... |
notifications/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
pdf_file/forms.py
| ... | ... | @@ -3,6 +3,7 @@ from django.utils.translation import ugettext_lazy as _ |
| 3 | 3 | from django.utils.html import strip_tags |
| 4 | 4 | |
| 5 | 5 | from subjects.models import Tag |
| 6 | +from subjects.forms import ParticipantsMultipleChoiceField | |
| 6 | 7 | from resubmit.widgets import ResubmitFileWidget |
| 7 | 8 | |
| 8 | 9 | from .models import PDFFile |
| ... | ... | @@ -11,6 +12,8 @@ class PDFFileForm(forms.ModelForm): |
| 11 | 12 | subject = None |
| 12 | 13 | MAX_UPLOAD_SIZE = 10*1024*1024 |
| 13 | 14 | |
| 15 | + students = ParticipantsMultipleChoiceField(queryset = None, required = False) | |
| 16 | + | |
| 14 | 17 | def __init__(self, *args, **kwargs): |
| 15 | 18 | super(PDFFileForm, self).__init__(*args, **kwargs) |
| 16 | 19 | self.subject = kwargs.get('initial').get('subject', None) | ... | ... |
pdf_file/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| ... | ... | @@ -18,23 +18,23 @@ msgstr "" |
| 18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
| 19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
| 20 | 20 | |
| 21 | -#: pdf_file/forms.py:25 | |
| 21 | +#: pdf_file/forms.py:28 | |
| 22 | 22 | msgid "Tags" |
| 23 | 23 | msgstr "Tags" |
| 24 | 24 | |
| 25 | -#: pdf_file/forms.py:30 | |
| 25 | +#: pdf_file/forms.py:33 | |
| 26 | 26 | msgid "File name" |
| 27 | 27 | msgstr "Nome do arquivo" |
| 28 | 28 | |
| 29 | -#: pdf_file/forms.py:51 | |
| 29 | +#: pdf_file/forms.py:54 | |
| 30 | 30 | msgid "This subject already has a pdf file with this name" |
| 31 | 31 | msgstr "Este assunto já possui um arquivo PDF com este nome" |
| 32 | 32 | |
| 33 | -#: pdf_file/forms.py:63 | |
| 33 | +#: pdf_file/forms.py:66 pdf_file/templates/pdf_file/_form.html:75 | |
| 34 | 34 | msgid "The file is too large. It should have less than 10MB." |
| 35 | 35 | msgstr "O arquivo é muito grande. Deve ser menor do que 10MB" |
| 36 | 36 | |
| 37 | -#: pdf_file/forms.py:68 | |
| 37 | +#: pdf_file/forms.py:71 | |
| 38 | 38 | msgid "This field is required." |
| 39 | 39 | msgstr "Este campo é requerido." |
| 40 | 40 | |
| ... | ... | @@ -50,43 +50,49 @@ msgstr "Arquivo" |
| 50 | 50 | msgid "Are you sure you want delete the PDF File" |
| 51 | 51 | msgstr "Tem certeza que deseja deletar este arquivo PDF?" |
| 52 | 52 | |
| 53 | -#: pdf_file/templates/pdf_file/_form.html:32 | |
| 53 | +#: pdf_file/templates/pdf_file/_form.html:33 | |
| 54 | 54 | msgid "Choose your file..." |
| 55 | 55 | msgstr "Escolha seu arquivo..." |
| 56 | 56 | |
| 57 | -#: pdf_file/templates/pdf_file/_form.html:46 | |
| 57 | +#: pdf_file/templates/pdf_file/_form.html:47 | |
| 58 | 58 | msgid "Click or drop the file here" |
| 59 | 59 | msgstr "Clique ou arraste o arquivo aqui." |
| 60 | 60 | |
| 61 | -#: pdf_file/templates/pdf_file/_form.html:48 | |
| 61 | +#: pdf_file/templates/pdf_file/_form.html:49 | |
| 62 | 62 | msgid "The file could not exceed 10MB." |
| 63 | 63 | msgstr "O arquivo não pode exceder 10MB." |
| 64 | 64 | |
| 65 | -#: pdf_file/templates/pdf_file/_form.html:68 | |
| 65 | +#: pdf_file/templates/pdf_file/_form.html:76 | |
| 66 | +#, fuzzy | |
| 67 | +#| msgid "File not supported, use PDF format instead." | |
| 68 | +msgid "File not supported." | |
| 69 | +msgstr "Este formato não é suportado, use PDF." | |
| 70 | + | |
| 71 | +#: pdf_file/templates/pdf_file/_form.html:80 | |
| 66 | 72 | msgid "Common resources settings" |
| 67 | 73 | msgstr "Configurações comuns à todos os recursos" |
| 68 | 74 | |
| 69 | -#: pdf_file/templates/pdf_file/_form.html:119 | |
| 75 | +#: pdf_file/templates/pdf_file/_form.html:131 | |
| 70 | 76 | msgid "Pendencies Notifications" |
| 71 | 77 | msgstr "Notificações pendentes" |
| 72 | 78 | |
| 73 | -#: pdf_file/templates/pdf_file/_form.html:135 | |
| 79 | +#: pdf_file/templates/pdf_file/_form.html:147 | |
| 74 | 80 | msgid "Action not performed by the user" |
| 75 | 81 | msgstr "Ação não permitida pelo usuário" |
| 76 | 82 | |
| 77 | -#: pdf_file/templates/pdf_file/_form.html:161 | |
| 83 | +#: pdf_file/templates/pdf_file/_form.html:173 | |
| 78 | 84 | msgid "Wished period" |
| 79 | 85 | msgstr "Período desejado" |
| 80 | 86 | |
| 81 | -#: pdf_file/templates/pdf_file/_form.html:257 | |
| 87 | +#: pdf_file/templates/pdf_file/_form.html:269 | |
| 82 | 88 | msgid "Attribute students to file link" |
| 83 | 89 | msgstr "" |
| 84 | 90 | |
| 85 | -#: pdf_file/templates/pdf_file/_form.html:277 | |
| 91 | +#: pdf_file/templates/pdf_file/_form.html:289 | |
| 86 | 92 | msgid "Attribute groups to file link" |
| 87 | 93 | msgstr "" |
| 88 | 94 | |
| 89 | -#: pdf_file/templates/pdf_file/_form.html:346 | |
| 95 | +#: pdf_file/templates/pdf_file/_form.html:358 | |
| 90 | 96 | msgid "Save" |
| 91 | 97 | msgstr "Salvar" |
| 92 | 98 | |
| ... | ... | @@ -170,8 +176,8 @@ msgstr "Editar: " |
| 170 | 176 | msgid "PDF could not be displayed" |
| 171 | 177 | msgstr "PDF não pode ser mostrado" |
| 172 | 178 | |
| 173 | -#: pdf_file/views.py:127 pdf_file/views.py:140 pdf_file/views.py:251 | |
| 174 | -#: pdf_file/views.py:253 pdf_file/views.py:269 pdf_file/views.py:271 | |
| 179 | +#: pdf_file/views.py:127 pdf_file/views.py:140 pdf_file/views.py:252 | |
| 180 | +#: pdf_file/views.py:254 pdf_file/views.py:270 pdf_file/views.py:272 | |
| 175 | 181 | msgid "Visualize" |
| 176 | 182 | msgstr "Visualizar" |
| 177 | 183 | |
| ... | ... | @@ -179,7 +185,7 @@ msgstr "Visualizar" |
| 179 | 185 | msgid "Create PDF File" |
| 180 | 186 | msgstr "Criar o arquivo PDF" |
| 181 | 187 | |
| 182 | -#: pdf_file/views.py:211 | |
| 188 | +#: pdf_file/views.py:212 | |
| 183 | 189 | #, python-format |
| 184 | 190 | msgid "" |
| 185 | 191 | "The PDF File \"%s\" was added to the Topic \"%s\" of the virtual environment " |
| ... | ... | @@ -188,67 +194,67 @@ msgstr "" |
| 188 | 194 | "O arquivo PDF \"%s\" foi adicionado ao topico \"%s\" do ambiente virtual " |
| 189 | 195 | "\"%s\" com sucesso!" |
| 190 | 196 | |
| 191 | -#: pdf_file/views.py:315 | |
| 197 | +#: pdf_file/views.py:316 | |
| 192 | 198 | msgid "Update PDF File" |
| 193 | 199 | msgstr "Atualize arquivo PDF" |
| 194 | 200 | |
| 195 | -#: pdf_file/views.py:326 | |
| 201 | +#: pdf_file/views.py:328 | |
| 196 | 202 | #, python-format |
| 197 | 203 | msgid "The PDF File \"%s\" was updated successfully!" |
| 198 | 204 | msgstr "O arquivo PDF \"%s\" foi atualizado com sucesso!" |
| 199 | 205 | |
| 200 | -#: pdf_file/views.py:353 | |
| 206 | +#: pdf_file/views.py:355 | |
| 201 | 207 | #, python-format |
| 202 | 208 | msgid "" |
| 203 | 209 | "The PDF File \"%s\" was removed successfully from virtual environment \"%s\"!" |
| 204 | 210 | msgstr "" |
| 205 | 211 | "O arquivo PDF \"%s\" foi removido com sucesso do ambiente virtual \"%s\" " |
| 206 | 212 | |
| 207 | -#: pdf_file/views.py:411 | |
| 213 | +#: pdf_file/views.py:413 | |
| 208 | 214 | msgid "PDF File Reports" |
| 209 | 215 | msgstr "Relatórios do arquivo de PDF" |
| 210 | 216 | |
| 211 | -#: pdf_file/views.py:431 | |
| 217 | +#: pdf_file/views.py:433 | |
| 212 | 218 | msgid "Realized" |
| 213 | 219 | msgstr "Realizada" |
| 214 | 220 | |
| 215 | -#: pdf_file/views.py:431 | |
| 221 | +#: pdf_file/views.py:433 | |
| 216 | 222 | msgid "Unrealized" |
| 217 | 223 | msgstr "Não Realizada" |
| 218 | 224 | |
| 219 | -#: pdf_file/views.py:431 | |
| 225 | +#: pdf_file/views.py:433 | |
| 220 | 226 | msgid "Historic" |
| 221 | 227 | msgstr "Histórico" |
| 222 | 228 | |
| 223 | -#: pdf_file/views.py:447 pdf_file/views.py:455 | |
| 229 | +#: pdf_file/views.py:449 pdf_file/views.py:457 | |
| 224 | 230 | msgid "View" |
| 225 | 231 | msgstr "Visualizar" |
| 226 | 232 | |
| 227 | -#: pdf_file/views.py:456 | |
| 233 | +#: pdf_file/views.py:458 | |
| 228 | 234 | msgid "PDF File" |
| 229 | 235 | msgstr "Criar o arquivo PDF" |
| 230 | 236 | |
| 231 | -#: pdf_file/views.py:461 | |
| 237 | +#: pdf_file/views.py:463 | |
| 232 | 238 | msgid "Actions about resource" |
| 233 | 239 | msgstr "Ações sobre o recurso" |
| 234 | 240 | |
| 235 | -#: pdf_file/views.py:462 | |
| 241 | +#: pdf_file/views.py:464 | |
| 236 | 242 | msgid "Quantity" |
| 237 | 243 | msgstr "Quantidade" |
| 238 | 244 | |
| 239 | -#: pdf_file/views.py:509 | |
| 245 | +#: pdf_file/views.py:511 | |
| 240 | 246 | msgid "[Photo]" |
| 241 | 247 | msgstr "[Imagem]" |
| 242 | 248 | |
| 243 | -#: pdf_file/views.py:521 | |
| 249 | +#: pdf_file/views.py:523 | |
| 244 | 250 | #, python-format |
| 245 | 251 | msgid "Last message in %s" |
| 246 | 252 | msgstr "Última mensagem em %s" |
| 247 | 253 | |
| 248 | -#: pdf_file/views.py:530 | |
| 254 | +#: pdf_file/views.py:532 | |
| 249 | 255 | msgid "The message was successfull sent!" |
| 250 | 256 | msgstr "A mensagem foi enviada com sucesso!" |
| 251 | 257 | |
| 252 | -#: pdf_file/views.py:532 | |
| 258 | +#: pdf_file/views.py:534 | |
| 253 | 259 | msgid "No user selected!" |
| 254 | 260 | msgstr "Nenhum usuário selecionado!" | ... | ... |
pdf_file/serializers.py
| ... | ... | @@ -44,7 +44,7 @@ class SimplePDFFileSerializer(serializers.ModelSerializer): |
| 44 | 44 | |
| 45 | 45 | path = files.extract(data["file"], dst_path) |
| 46 | 46 | |
| 47 | - new_name = "files/file_" + str(time.time()) + os.path.splitext(data["file"])[1] | |
| 47 | + new_name = os.path.join("files","file_" + str(time.time()) + os.path.splitext(data["file"])[1]) | |
| 48 | 48 | |
| 49 | 49 | os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_name)) |
| 50 | 50 | |
| ... | ... | @@ -80,7 +80,7 @@ class SimplePDFFileSerializer(serializers.ModelSerializer): |
| 80 | 80 | if topic_exist.exists(): |
| 81 | 81 | topic = topic_exist[0] |
| 82 | 82 | else: |
| 83 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
| 83 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
| 84 | 84 | |
| 85 | 85 | data["topic"] = topic |
| 86 | 86 | else: |
| ... | ... | @@ -154,7 +154,7 @@ class CompletePDFFileSerializer(serializers.ModelSerializer): |
| 154 | 154 | |
| 155 | 155 | path = files.extract(data["file"], dst_path) |
| 156 | 156 | |
| 157 | - new_name = "files/file_" + str(time.time()) + os.path.splitext(data["file"])[1] | |
| 157 | + new_name = os.path.join("files","file_" + str(time.time()) + os.path.splitext(data["file"])[1]) | |
| 158 | 158 | |
| 159 | 159 | os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_name)) |
| 160 | 160 | |
| ... | ... | @@ -191,7 +191,7 @@ class CompletePDFFileSerializer(serializers.ModelSerializer): |
| 191 | 191 | if topic_exist.exists(): |
| 192 | 192 | topic = topic_exist[0] |
| 193 | 193 | else: |
| 194 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
| 194 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
| 195 | 195 | |
| 196 | 196 | data["topic"] = topic |
| 197 | 197 | else: | ... | ... |
pdf_file/templates/pdf_file/_form.html
| ... | ... | @@ -236,7 +236,7 @@ |
| 236 | 236 | <div class="col-md-12"> |
| 237 | 237 | <a data-parent="#professors_accordion" data-toggle="collapse" href="#students"> |
| 238 | 238 | <h4 class="panel-title"> |
| 239 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{{ form.students.label }}</label> | |
| 239 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{% trans 'Students' %}</label> | |
| 240 | 240 | </h4> |
| 241 | 241 | </a> |
| 242 | 242 | </div> | ... | ... |
pendencies/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
reports/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
security/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
students_group/forms.py
| ... | ... | @@ -3,11 +3,13 @@ from django import forms |
| 3 | 3 | from django.utils.translation import ugettext_lazy as _ |
| 4 | 4 | |
| 5 | 5 | from subjects.models import Subject |
| 6 | +from subjects.forms import ParticipantsMultipleChoiceField | |
| 6 | 7 | |
| 7 | 8 | from .models import StudentsGroup |
| 8 | 9 | |
| 9 | 10 | class StudentsGroupForm(forms.ModelForm): |
| 10 | 11 | subject = None |
| 12 | + participants = ParticipantsMultipleChoiceField(queryset = None, required = False) | |
| 11 | 13 | |
| 12 | 14 | def __init__(self, *args, **kwargs): |
| 13 | 15 | super(StudentsGroupForm, self).__init__(*args, **kwargs) | ... | ... |
students_group/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| ... | ... | @@ -18,7 +18,7 @@ msgstr "" |
| 18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
| 19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
| 20 | 20 | |
| 21 | -#: students_group/forms.py:31 | |
| 21 | +#: students_group/forms.py:33 | |
| 22 | 22 | msgid "This subject already has a group with this name" |
| 23 | 23 | msgstr "Esse assunto já possui um grupo com esse nome" |
| 24 | 24 | ... | ... |
students_group/templates/groups/_form.html
| ... | ... | @@ -11,7 +11,7 @@ |
| 11 | 11 | <div class="col-md-12"> |
| 12 | 12 | <a data-parent="#professors_accordion" data-toggle="collapse" href="#group_participants"> |
| 13 | 13 | <h4 class="panel-title"> |
| 14 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ field.auto_id }}">{{ field.label }}</label> | |
| 14 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ field.auto_id }}">{% trans 'Participants' %}</label> | |
| 15 | 15 | </h4> |
| 16 | 16 | </a> |
| 17 | 17 | </div> | ... | ... |
subjects/forms.py
| 1 | 1 | from django import forms |
| 2 | 2 | from django.utils.translation import ugettext_lazy as _ |
| 3 | 3 | import datetime |
| 4 | + | |
| 5 | +from users.models import User | |
| 6 | + | |
| 4 | 7 | from .models import Subject, Tag |
| 5 | 8 | |
| 9 | + | |
| 10 | +class ParticipantsMultipleChoiceField(forms.ModelMultipleChoiceField): | |
| 11 | + def label_from_instance(self, obj): | |
| 12 | + label = str(obj) + " - (" + obj.email + ")" | |
| 13 | + | |
| 14 | + return label | |
| 15 | + | |
| 6 | 16 | class CreateSubjectForm(forms.ModelForm): |
| 7 | 17 | category_id = None |
| 8 | 18 | |
| 19 | + students = ParticipantsMultipleChoiceField(queryset = User.objects.all(), required = False) | |
| 20 | + professor = ParticipantsMultipleChoiceField(queryset = User.objects.all(), required = False) | |
| 21 | + | |
| 9 | 22 | def __init__(self, *args, **kwargs): |
| 10 | 23 | super(CreateSubjectForm, self).__init__(*args, **kwargs) |
| 11 | 24 | |
| ... | ... | @@ -118,6 +131,9 @@ class CreateSubjectForm(forms.ModelForm): |
| 118 | 131 | return end_date |
| 119 | 132 | |
| 120 | 133 | class UpdateSubjectForm(forms.ModelForm): |
| 134 | + students = ParticipantsMultipleChoiceField(queryset = User.objects.all(), required = False) | |
| 135 | + professor = ParticipantsMultipleChoiceField(queryset = User.objects.all(), required = False) | |
| 136 | + | |
| 121 | 137 | def __init__(self, *args, **kwargs): |
| 122 | 138 | super(UpdateSubjectForm, self).__init__(*args, **kwargs) |
| 123 | 139 | ... | ... |
subjects/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| ... | ... | @@ -18,27 +18,27 @@ msgstr "" |
| 18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
| 19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
| 20 | 20 | |
| 21 | -#: subjects/forms.py:14 subjects/forms.py:117 | |
| 21 | +#: subjects/forms.py:37 subjects/forms.py:144 | |
| 22 | 22 | msgid "Tags" |
| 23 | 23 | msgstr "Tags" |
| 24 | 24 | |
| 25 | -#: subjects/forms.py:67 subjects/forms.py:170 | |
| 25 | +#: subjects/forms.py:91 subjects/forms.py:199 | |
| 26 | 26 | msgid "There is another subject with this name, try another one." |
| 27 | 27 | msgstr "Já existe um assunto com esse nome, tente outro." |
| 28 | 28 | |
| 29 | -#: subjects/forms.py:76 | |
| 29 | +#: subjects/forms.py:100 | |
| 30 | 30 | msgid "This date must be today or after" |
| 31 | 31 | msgstr "Essa data deve ser hoje ou depois disso" |
| 32 | 32 | |
| 33 | -#: subjects/forms.py:86 subjects/forms.py:189 | |
| 33 | +#: subjects/forms.py:110 subjects/forms.py:217 | |
| 34 | 34 | msgid "This date must be equal subscribe begin or after" |
| 35 | 35 | msgstr "Essa data deve ser igual ou depois de começarem as incrições" |
| 36 | 36 | |
| 37 | -#: subjects/forms.py:96 subjects/forms.py:199 | |
| 37 | +#: subjects/forms.py:120 subjects/forms.py:227 | |
| 38 | 38 | msgid "This date must be after subscribe end" |
| 39 | 39 | msgstr "Essa data deve ser depois do fim das inscrições" |
| 40 | 40 | |
| 41 | -#: subjects/forms.py:105 subjects/forms.py:208 | |
| 41 | +#: subjects/forms.py:129 subjects/forms.py:236 | |
| 42 | 42 | msgid "This date must be equal init date or after" |
| 43 | 43 | msgstr "Essa data deve ser igual ou depois da data de início" |
| 44 | 44 | |
| ... | ... | @@ -189,7 +189,7 @@ msgid "DELETE" |
| 189 | 189 | msgstr "Deletar" |
| 190 | 190 | |
| 191 | 191 | #: subjects/templates/subjects/home.html:67 |
| 192 | -#: subjects/templates/subjects/initial.html:77 subjects/views.py:212 | |
| 192 | +#: subjects/templates/subjects/initial.html:77 subjects/views.py:214 | |
| 193 | 193 | msgid "My Subjects" |
| 194 | 194 | msgstr "Meus assuntos" |
| 195 | 195 | |
| ... | ... | @@ -242,12 +242,12 @@ msgid " Any subjects or Resources were not found on the search for " |
| 242 | 242 | msgstr " Nenhum assunto ou recursos foram encontrados na busca por " |
| 243 | 243 | |
| 244 | 244 | #: subjects/templates/subjects/list_search.html:48 |
| 245 | -#: subjects/templates/subjects/list_search.html:51 subjects/views.py:677 | |
| 245 | +#: subjects/templates/subjects/list_search.html:51 subjects/views.py:676 | |
| 246 | 246 | msgid "Subjects" |
| 247 | 247 | msgstr "Assuntos" |
| 248 | 248 | |
| 249 | 249 | #: subjects/templates/subjects/list_search.html:49 |
| 250 | -#: subjects/templates/subjects/list_search.html:52 subjects/views.py:684 | |
| 250 | +#: subjects/templates/subjects/list_search.html:52 subjects/views.py:683 | |
| 251 | 251 | msgid "Resources" |
| 252 | 252 | msgstr "Recursos" |
| 253 | 253 | |
| ... | ... | @@ -362,52 +362,52 @@ msgstr "Ver Perfil" |
| 362 | 362 | msgid "Send Message" |
| 363 | 363 | msgstr "Enviar Mensagem" |
| 364 | 364 | |
| 365 | -#: subjects/views.py:85 | |
| 365 | +#: subjects/views.py:87 | |
| 366 | 366 | msgid "Home" |
| 367 | 367 | msgstr "Início" |
| 368 | 368 | |
| 369 | -#: subjects/views.py:184 | |
| 369 | +#: subjects/views.py:186 | |
| 370 | 370 | msgid "Page is not 'last', nor can it be converted to an int." |
| 371 | 371 | msgstr "" |
| 372 | 372 | "Página não é a 'última', e também não pode ser convertido para um inteiro" |
| 373 | 373 | |
| 374 | -#: subjects/views.py:190 | |
| 374 | +#: subjects/views.py:192 | |
| 375 | 375 | #, python-format |
| 376 | 376 | msgid "Invalid page (%(page_number)s): %(message)s" |
| 377 | 377 | msgstr "Página inválida (%(page_number)s): %(message)s" |
| 378 | 378 | |
| 379 | -#: subjects/views.py:219 | |
| 379 | +#: subjects/views.py:221 | |
| 380 | 380 | msgid "All Subjects" |
| 381 | 381 | msgstr "Todos os assuntos" |
| 382 | 382 | |
| 383 | -#: subjects/views.py:315 | |
| 383 | +#: subjects/views.py:317 | |
| 384 | 384 | msgid "Create Subject" |
| 385 | 385 | msgstr "Criar Assunto" |
| 386 | 386 | |
| 387 | -#: subjects/views.py:327 | |
| 387 | +#: subjects/views.py:329 | |
| 388 | 388 | msgid "Replicate Subject" |
| 389 | 389 | msgstr "Replicar Assunto" |
| 390 | 390 | |
| 391 | -#: subjects/views.py:369 | |
| 391 | +#: subjects/views.py:371 | |
| 392 | 392 | #, python-format |
| 393 | 393 | msgid "The Subject \"%s\" was registered on \"%s\" Category successfully!" |
| 394 | 394 | msgstr "Assunto \"%s\" foi registrado na categoria \"%s\" com sucesso!" |
| 395 | 395 | |
| 396 | -#: subjects/views.py:404 | |
| 396 | +#: subjects/views.py:406 | |
| 397 | 397 | msgid "Update Subject" |
| 398 | 398 | msgstr "Atualizar Assunto" |
| 399 | 399 | |
| 400 | -#: subjects/views.py:428 | |
| 400 | +#: subjects/views.py:430 | |
| 401 | 401 | #, python-format |
| 402 | 402 | msgid "The Subject \"%s\" was updated on \"%s\" Category successfully!" |
| 403 | 403 | msgstr "Assunto \"%s\" foi atualizado na categoria \"%s\" com sucesso!" |
| 404 | 404 | |
| 405 | -#: subjects/views.py:469 subjects/views.py:513 | |
| 405 | +#: subjects/views.py:471 subjects/views.py:515 | |
| 406 | 406 | #, python-format |
| 407 | 407 | msgid "Subject \"%s\" removed successfully!" |
| 408 | 408 | msgstr "Assunto \"%s\" removido com sucesso!" |
| 409 | 409 | |
| 410 | -#: subjects/views.py:477 subjects/views.py:481 | |
| 410 | +#: subjects/views.py:479 subjects/views.py:483 | |
| 411 | 411 | msgid "" |
| 412 | 412 | "Subject can't be removed. The subject still possess students and learning " |
| 413 | 413 | "objects associated" |
| ... | ... | @@ -415,24 +415,24 @@ msgstr "" |
| 415 | 415 | "Assunto não pode ser removido. Ele ainda possui alunos e objetos de " |
| 416 | 416 | "aprendizado associados" |
| 417 | 417 | |
| 418 | -#: subjects/views.py:603 | |
| 418 | +#: subjects/views.py:602 | |
| 419 | 419 | msgid "Subscription date is due!" |
| 420 | 420 | msgstr "O período de inscrição está encerrado!" |
| 421 | 421 | |
| 422 | -#: subjects/views.py:616 | |
| 422 | +#: subjects/views.py:615 | |
| 423 | 423 | msgid "Subscription was successfull!" |
| 424 | 424 | msgstr "Inscrição feita com sucesso!" |
| 425 | 425 | |
| 426 | -#: subjects/views.py:749 | |
| 426 | +#: subjects/views.py:748 | |
| 427 | 427 | #, python-format |
| 428 | 428 | msgid "%s - Backup" |
| 429 | 429 | msgstr "%s - Backup" |
| 430 | 430 | |
| 431 | -#: subjects/views.py:885 | |
| 431 | +#: subjects/views.py:907 | |
| 432 | 432 | #, python-format |
| 433 | 433 | msgid "%s - Restore" |
| 434 | 434 | msgstr "%s - Restaurar" |
| 435 | 435 | |
| 436 | -#: subjects/views.py:951 | |
| 436 | +#: subjects/views.py:981 | |
| 437 | 437 | msgid "Backup restored successfully!" |
| 438 | 438 | msgstr "Backup restaurado com sucesso!" | ... | ... |
subjects/serializers.py
| ... | ... | @@ -27,4 +27,4 @@ class SubjectSerializer(serializers.ModelSerializer): |
| 27 | 27 | |
| 28 | 28 | class Meta: |
| 29 | 29 | model = Subject |
| 30 | - fields = ["name", "slug", "visible"] | |
| 31 | 30 | \ No newline at end of file |
| 31 | + fields = ["name", "slug", "visible", "description_brief", "description"] | |
| 32 | 32 | \ No newline at end of file | ... | ... |
subjects/templates/subjects/_form.html
| ... | ... | @@ -11,7 +11,7 @@ |
| 11 | 11 | <div class="col-md-12"> |
| 12 | 12 | <a data-parent="#coordinators_accordion" data-toggle="collapse" href="#students"> |
| 13 | 13 | <h4 class="panel-title"> |
| 14 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ field.auto_id }}">{{ field.label }}</label> | |
| 14 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ field.auto_id }}">{% trans 'Students' %}</label> | |
| 15 | 15 | </h4> |
| 16 | 16 | </a> |
| 17 | 17 | </div> |
| ... | ... | @@ -31,7 +31,7 @@ |
| 31 | 31 | <div class="col-md-12"> |
| 32 | 32 | <a data-parent="#professors_accordion" data-toggle="collapse" href="#professors"> |
| 33 | 33 | <h4 class="panel-title"> |
| 34 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ field.auto_id }}">{{ field.label }}</label> | |
| 34 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ field.auto_id }}">{% trans 'Professor' %}</label> | |
| 35 | 35 | </h4> |
| 36 | 36 | </a> |
| 37 | 37 | </div> | ... | ... |
subjects/templates/subjects/restore.html
| ... | ... | @@ -72,10 +72,10 @@ |
| 72 | 72 | {% csrf_token %} |
| 73 | 73 | |
| 74 | 74 | <div class="form-group is-fileinput"> |
| 75 | - <input type="file" id="zip_file" name="zip_file" class="form-control" accept=".zip" /> | |
| 75 | + <input type="file" id="zip_file" name="zip_file" class="form-control" accept=".zip" data-mimetypes="['application/zip', 'application/octet-stream']" required /> | |
| 76 | 76 | |
| 77 | 77 | <div class="input-group common-file-input"> |
| 78 | - <input type="text" readonly="" class="form-control" placeholder="{% trans 'Choose your file...' %}"> | |
| 78 | + <input type="text" readonly="" class="form-control" placeholder="{% trans 'Choose your file...' %}" required> | |
| 79 | 79 | <span class="input-group-btn input-group-sm"> |
| 80 | 80 | <button type="button" class="btn btn-fab btn-fab-mini"> |
| 81 | 81 | <i class="material-icons">attach_file</i> |
| ... | ... | @@ -88,8 +88,18 @@ |
| 88 | 88 | </div> |
| 89 | 89 | </div> |
| 90 | 90 | |
| 91 | + <div class="col-lg-12 col-md-12 col-sm-12 alert alert-danger alert-dismissible client-file-errors" style="display:none" role="alert"> | |
| 92 | + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | |
| 93 | + <span aria-hidden="true">×</span> | |
| 94 | + </button> | |
| 95 | + <ul> | |
| 96 | + <li class="format">{% trans 'File not supported.' %}</li> | |
| 97 | + </ul> | |
| 98 | + </div> | |
| 99 | + | |
| 100 | + | |
| 91 | 101 | <div class="row text-center"> |
| 92 | - <input type="submit" value="{% trans 'Restore' %}" class="btn btn-success btn-raised" /> | |
| 102 | + <input type="submit" value="{% trans 'Restore' %}" disabled class="btn btn-success btn-raised" /> | |
| 93 | 103 | </div> |
| 94 | 104 | </form> |
| 95 | 105 | </div> |
| ... | ... | @@ -127,10 +137,23 @@ |
| 127 | 137 | // file selection |
| 128 | 138 | function FileSelectHandler(e) { |
| 129 | 139 | var files = e.target.files || e.dataTransfer.files, |
| 130 | - parent = $(e.target.offsetParent); | |
| 140 | + parent = $(e.target.offsetParent), | |
| 141 | + mimeTypes = $(e.target).data('mimetypes'), | |
| 142 | + submit_btn = $(e.target).closest("form").find("input[type='submit']"); | |
| 143 | + | |
| 144 | + $(".client-file-errors").hide(); | |
| 145 | + $(submit_btn).prop('disable', false); | |
| 146 | + $(submit_btn).prop('disabled', false); | |
| 131 | 147 | |
| 132 | 148 | // process all File objects |
| 133 | 149 | for (var i = 0, f; f = files[i]; i++) { |
| 150 | + if (!mimeTypes.includes(f.type)) { | |
| 151 | + $(submit_btn).prop('disable', true); | |
| 152 | + $(submit_btn).prop('disabled', true); | |
| 153 | + | |
| 154 | + $(".client-file-errors").show(); | |
| 155 | + } | |
| 156 | + | |
| 134 | 157 | parent.find('.filedrag').html(f.name); |
| 135 | 158 | } |
| 136 | 159 | } | ... | ... |
subjects/views.py
| ... | ... | @@ -43,6 +43,8 @@ from rest_framework.renderers import JSONRenderer |
| 43 | 43 | from rest_framework.parsers import JSONParser |
| 44 | 44 | |
| 45 | 45 | from users.serializers import UserBackupSerializer |
| 46 | +from bulletin.serializers import SimpleBulletinSerializer, CompleteBulletinSerializer | |
| 47 | +from bulletin.models import Bulletin | |
| 46 | 48 | from file_link.serializers import SimpleFileLinkSerializer, CompleteFileLinkSerializer |
| 47 | 49 | from file_link.models import FileLink |
| 48 | 50 | from goals.serializers import SimpleGoalSerializer, CompleteGoalSerializer |
| ... | ... | @@ -284,14 +286,14 @@ class SubjectCreateView(LoginRequiredMixin, LogMixin, CreateView): |
| 284 | 286 | initial = super(SubjectCreateView, self).get_initial() |
| 285 | 287 | |
| 286 | 288 | if self.kwargs.get('slug'): #when the user creates a subject |
| 287 | - initial['category'] = Category.objects.all().filter(slug=self.kwargs['slug']) | |
| 289 | + initial['category'] = Category.objects.filter(slug=self.kwargs['slug']) | |
| 288 | 290 | # print (initial) |
| 289 | 291 | # initial['professor'] = User.objects.all() |
| 290 | 292 | |
| 291 | 293 | if self.kwargs.get('subject_slug'): #when the user replicate a subject |
| 292 | 294 | subject = get_object_or_404(Subject, slug = self.kwargs['subject_slug']) |
| 293 | 295 | initial = initial.copy() |
| 294 | - initial['category'] = subject.category | |
| 296 | + initial['category'] = Category.objects.filter(slug = subject.category.slug) | |
| 295 | 297 | initial['description'] = subject.description |
| 296 | 298 | initial['name'] = subject.name |
| 297 | 299 | initial['visible'] = subject.visible |
| ... | ... | @@ -547,9 +549,8 @@ class SubjectDetailView(LoginRequiredMixin, LogMixin, DetailView): |
| 547 | 549 | expire_time = settings.SESSION_SECURITY_EXPIRE_AFTER |
| 548 | 550 | |
| 549 | 551 | context['participants'] = User.objects.filter( |
| 550 | - Q(is_staff = True) | Q(subject_student__slug = sub) | | |
| 551 | - Q(professors__slug = sub) | | |
| 552 | - Q(coordinators__subject_category__slug = sub) | |
| 552 | + Q(subject_student__slug = sub) | | |
| 553 | + Q(professors__slug = sub) | |
| 553 | 554 | ).extra(select = {'status': status_query}, select_params=(expire_time, expire_time,),).distinct().order_by('status', 'social_name','username').exclude(email = self.request.user.email) |
| 554 | 555 | |
| 555 | 556 | resources = self.request.session.get('resources', None) |
| ... | ... | @@ -597,8 +598,6 @@ class SubjectSubscribeView(LoginRequiredMixin, LogMixin, TemplateView): |
| 597 | 598 | def post(self, request, *args, **kwargs): |
| 598 | 599 | subject = get_object_or_404(Subject, slug= kwargs.get('slug')) |
| 599 | 600 | |
| 600 | - print ("Deu Certo ", subject) | |
| 601 | - | |
| 602 | 601 | if subject.subscribe_end <= datetime.datetime.today().date(): |
| 603 | 602 | messages.error(self.request, _('Subscription date is due!')) |
| 604 | 603 | else: |
| ... | ... | @@ -763,6 +762,7 @@ def realize_backup(request, subject): |
| 763 | 762 | |
| 764 | 763 | zf = zipfile.ZipFile(s, "w", compression = zipfile.ZIP_DEFLATED) |
| 765 | 764 | |
| 765 | + bulletins = Bulletin.objects.filter(id__in = resources_ids) | |
| 766 | 766 | webpages = Webpage.objects.filter(id__in = resources_ids) |
| 767 | 767 | ytvideos = YTVideo.objects.filter(id__in = resources_ids) |
| 768 | 768 | filelinks = FileLink.objects.filter(id__in = resources_ids) |
| ... | ... | @@ -790,6 +790,23 @@ def realize_backup(request, subject): |
| 790 | 790 | # Add file, at correct path |
| 791 | 791 | zf.write(pdffile.file.path, zip_path) |
| 792 | 792 | |
| 793 | + for bulletin in bulletins: | |
| 794 | + if bool(bulletin.file_content): | |
| 795 | + if os.path.exists(bulletin.file_content.path): | |
| 796 | + fdir, fname = os.path.split(bulletin.file_content.path) | |
| 797 | + zip_path = os.path.join(os.path.join("bulletin", "goals"), fname) | |
| 798 | + | |
| 799 | + # Add file, at correct path | |
| 800 | + zf.write(bulletin.file_content.path, zip_path) | |
| 801 | + | |
| 802 | + if bool(bulletin.indicators): | |
| 803 | + if os.path.exists(bulletin.indicators.path): | |
| 804 | + fdir, fname = os.path.split(bulletin.indicators.path) | |
| 805 | + zip_path = os.path.join(os.path.join("bulletin", "indicators"), fname) | |
| 806 | + | |
| 807 | + # Add file, at correct path | |
| 808 | + zf.write(bulletin.indicators.path, zip_path) | |
| 809 | + | |
| 793 | 810 | file = open("backup.json", "w") |
| 794 | 811 | |
| 795 | 812 | data_list = [] |
| ... | ... | @@ -805,6 +822,7 @@ def realize_backup(request, subject): |
| 805 | 822 | |
| 806 | 823 | zf.write(user.image.path, zip_path) |
| 807 | 824 | |
| 825 | + serializer_b = CompleteBulletinSerializer(bulletins, many = True) | |
| 808 | 826 | serializer_w = CompleteWebpageSerializer(webpages, many = True) |
| 809 | 827 | serializer_y = CompleteYTVideoSerializer(ytvideos, many = True) |
| 810 | 828 | serializer_f = CompleteFileLinkSerializer(filelinks, many = True) |
| ... | ... | @@ -813,6 +831,7 @@ def realize_backup(request, subject): |
| 813 | 831 | serializer_g = CompleteGoalSerializer(goals, many = True) |
| 814 | 832 | serializer_c = CompleteWebconferenceSerializer(webconferences, many = True) |
| 815 | 833 | else: |
| 834 | + serializer_b = SimpleBulletinSerializer(bulletins, many = True) | |
| 816 | 835 | serializer_w = SimpleWebpageSerializer(webpages, many = True) |
| 817 | 836 | serializer_y = SimpleYTVideoSerializer(ytvideos, many = True) |
| 818 | 837 | serializer_f = SimpleFileLinkSerializer(filelinks, many = True) |
| ... | ... | @@ -821,6 +840,9 @@ def realize_backup(request, subject): |
| 821 | 840 | serializer_g = SimpleGoalSerializer(goals, many = True) |
| 822 | 841 | serializer_c = SimpleWebconferenceSerializer(webconferences, many = True) |
| 823 | 842 | |
| 843 | + if len(serializer_b.data) > 0: | |
| 844 | + data_list.append(serializer_b.data) | |
| 845 | + | |
| 824 | 846 | if len(serializer_w.data) > 0: |
| 825 | 847 | data_list.append(serializer_w.data) |
| 826 | 848 | |
| ... | ... | @@ -914,6 +936,14 @@ def realize_restore(request, subject): |
| 914 | 936 | serial = CompleteWebpageSerializer(data = line, many = True, context = {'subject': subject, 'files': file}) |
| 915 | 937 | else: |
| 916 | 938 | serial = SimpleWebpageSerializer(data = line, many = True, context = {'subject': subject}) |
| 939 | + elif line[0]["_my_subclass"] == "bulletin": | |
| 940 | + if "students" in line[0]: | |
| 941 | + print(file.namelist()) | |
| 942 | + print(line[0]["file_content"]) | |
| 943 | + print(line[0]["file_content"] in file.namelist()) | |
| 944 | + serial = CompleteBulletinSerializer(data = line, many = True, context = {'subject': subject, 'files': file}) | |
| 945 | + else: | |
| 946 | + serial = SimpleBulletinSerializer(data = line, many = True, context = {'subject': subject, 'files': file}) | |
| 917 | 947 | elif line[0]["_my_subclass"] == "filelink": |
| 918 | 948 | if "students" in line[0]: |
| 919 | 949 | serial = CompleteFileLinkSerializer(data = line, many = True, context = {'subject': subject, 'files': file}) | ... | ... |
themes/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| ... | ... | @@ -18,11 +18,12 @@ msgstr "" |
| 18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
| 19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
| 20 | 20 | |
| 21 | -#: themes/forms.py:15 themes/forms.py:27 themes/forms.py:39 | |
| 21 | +#: themes/forms.py:17 themes/forms.py:29 themes/forms.py:41 | |
| 22 | +#: themes/templates/themes/basic_update.html:94 | |
| 22 | 23 | msgid "The image is too large. It should have less than 2MB." |
| 23 | 24 | msgstr "A imagem é muito grande. Ela deve ter menos de 2MB." |
| 24 | 25 | |
| 25 | -#: themes/models.py:11 | |
| 26 | +#: themes/models.py:11 themes/templates/themes/basic_update.html:95 | |
| 26 | 27 | msgid "File not supported." |
| 27 | 28 | msgstr "Arquivo não suportado." |
| 28 | 29 | |
| ... | ... | @@ -96,12 +97,12 @@ msgstr "Dimensões recomendads" |
| 96 | 97 | msgid "It is recommended to be a white image" |
| 97 | 98 | msgstr "É recomendável ser uma imagem branca" |
| 98 | 99 | |
| 99 | -#: themes/templates/themes/basic_update.html:89 | |
| 100 | +#: themes/templates/themes/basic_update.html:103 | |
| 100 | 101 | #: themes/templates/themes/css_update.html:75 |
| 101 | 102 | msgid "Save" |
| 102 | 103 | msgstr "Salvar" |
| 103 | 104 | |
| 104 | -#: themes/templates/themes/basic_update.html:94 | |
| 105 | +#: themes/templates/themes/basic_update.html:108 | |
| 105 | 106 | #: themes/templates/themes/css_update.html:17 |
| 106 | 107 | #: themes/templates/themes/index.html:18 themes/views.py:78 |
| 107 | 108 | msgid "CSS Selector" | ... | ... |
topics/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
users/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| ... | ... | @@ -23,6 +23,7 @@ msgid "You must insert an email address" |
| 23 | 23 | msgstr "Você deve inserir um endereço de email" |
| 24 | 24 | |
| 25 | 25 | #: users/forms.py:43 users/templates/users/_form.html:94 |
| 26 | +#: users/templates/users/register.html:107 | |
| 26 | 27 | msgid "The image is too large. It should have less than 2MB." |
| 27 | 28 | msgstr "A imagem é muito grande. Ela deve conter menos de 2MB." |
| 28 | 29 | |
| ... | ... | @@ -88,6 +89,7 @@ msgid "You must insert a valid email address" |
| 88 | 89 | msgstr "Você deve inserir um endereço de email válido" |
| 89 | 90 | |
| 90 | 91 | #: users/models.py:18 users/templates/users/_form.html:95 |
| 92 | +#: users/templates/users/register.html:108 | |
| 91 | 93 | msgid "File not supported." |
| 92 | 94 | msgstr "Arquivo não suportado." |
| 93 | 95 | |
| ... | ... | @@ -173,15 +175,15 @@ msgstr "Sim" |
| 173 | 175 | msgid "Is not an admin" |
| 174 | 176 | msgstr "Não é administrador" |
| 175 | 177 | |
| 176 | -#: users/templates/users/_form.html:18 users/templates/users/register.html:53 | |
| 178 | +#: users/templates/users/_form.html:18 users/templates/users/register.html:56 | |
| 177 | 179 | msgid "Choose your photo..." |
| 178 | 180 | msgstr "Escolha sua foto..." |
| 179 | 181 | |
| 180 | -#: users/templates/users/_form.html:32 | |
| 182 | +#: users/templates/users/_form.html:32 users/templates/users/register.html:70 | |
| 181 | 183 | msgid "Click or drop the file here" |
| 182 | 184 | msgstr "" |
| 183 | 185 | |
| 184 | -#: users/templates/users/_form.html:34 | |
| 186 | +#: users/templates/users/_form.html:34 users/templates/users/register.html:72 | |
| 185 | 187 | msgid "The photo could not exceed 2MB." |
| 186 | 188 | msgstr "A imagem não pode exceder o tamanho de 2MB." |
| 187 | 189 | |
| ... | ... | @@ -231,7 +233,7 @@ msgstr "Recuperar" |
| 231 | 233 | |
| 232 | 234 | #: users/templates/users/forgot_password.html:75 |
| 233 | 235 | #: users/templates/users/new_password.html:80 |
| 234 | -#: users/templates/users/register.html:93 | |
| 236 | +#: users/templates/users/register.html:121 | |
| 235 | 237 | msgid "Back" |
| 236 | 238 | msgstr "Voltar" |
| 237 | 239 | |
| ... | ... | @@ -308,7 +310,7 @@ msgstr "Estudante em" |
| 308 | 310 | msgid "User Register" |
| 309 | 311 | msgstr "Cadastro de Usuário" |
| 310 | 312 | |
| 311 | -#: users/templates/users/register.html:90 | |
| 313 | +#: users/templates/users/register.html:118 | |
| 312 | 314 | msgid "Register" |
| 313 | 315 | msgstr "Cadastrar" |
| 314 | 316 | ... | ... |
users/serializers.py
| ... | ... | @@ -35,7 +35,7 @@ class UserBackupSerializer(serializers.ModelSerializer): |
| 35 | 35 | |
| 36 | 36 | path = files.extract(data["image"], dst_path) |
| 37 | 37 | |
| 38 | - new_name = "users/img_" + str(time.time()) + os.path.splitext(data["image"])[1] | |
| 38 | + new_name = os.path.join("users","img_" + str(time.time()) + os.path.splitext(data["image"])[1]) | |
| 39 | 39 | |
| 40 | 40 | os.rename(os.path.join(dst_path, path), os.path.join(settings.MEDIA_ROOT, new_name)) |
| 41 | 41 | ... | ... |
webconference/forms.py
| ... | ... | @@ -6,6 +6,7 @@ from django.forms.models import inlineformset_factory |
| 6 | 6 | import datetime |
| 7 | 7 | |
| 8 | 8 | from subjects.models import Tag |
| 9 | +from subjects.forms import ParticipantsMultipleChoiceField | |
| 9 | 10 | |
| 10 | 11 | from .models import Webconference, ConferenceSettings |
| 11 | 12 | |
| ... | ... | @@ -15,6 +16,7 @@ from pendencies.models import Pendencies |
| 15 | 16 | class WebconferenceForm(forms.ModelForm): |
| 16 | 17 | subject = None |
| 17 | 18 | control_subject = forms.CharField(widget = forms.HiddenInput()) |
| 19 | + students = ParticipantsMultipleChoiceField(queryset = None, required = False) | |
| 18 | 20 | |
| 19 | 21 | def __init__(self, *args, **kwargs): |
| 20 | 22 | super(WebconferenceForm, self).__init__(*args, **kwargs) | ... | ... |
webconference/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| ... | ... | @@ -18,35 +18,35 @@ msgstr "" |
| 18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
| 19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
| 20 | 20 | |
| 21 | -#: webconference/forms.py:33 | |
| 21 | +#: webconference/forms.py:35 | |
| 22 | 22 | msgid "Tags" |
| 23 | 23 | msgstr "Tags" |
| 24 | 24 | |
| 25 | -#: webconference/forms.py:39 | |
| 25 | +#: webconference/forms.py:41 | |
| 26 | 26 | msgid "Web Conference Title" |
| 27 | 27 | msgstr "Titulo da Web Conferência" |
| 28 | 28 | |
| 29 | -#: webconference/forms.py:40 webconference/models.py:8 | |
| 29 | +#: webconference/forms.py:42 webconference/models.py:8 | |
| 30 | 30 | msgid "Presentation" |
| 31 | 31 | msgstr "Apresentação" |
| 32 | 32 | |
| 33 | -#: webconference/forms.py:61 | |
| 33 | +#: webconference/forms.py:63 | |
| 34 | 34 | msgid "This subject already has a web conference with this name" |
| 35 | 35 | msgstr "Este assunto já tem uma web conferência com este nome" |
| 36 | 36 | |
| 37 | -#: webconference/forms.py:71 | |
| 37 | +#: webconference/forms.py:73 | |
| 38 | 38 | msgid "This date must be today or after" |
| 39 | 39 | msgstr "Esta data deve ser hoje ou depois" |
| 40 | 40 | |
| 41 | -#: webconference/forms.py:81 | |
| 41 | +#: webconference/forms.py:83 | |
| 42 | 42 | msgid "This date must be equal start date/hour or after" |
| 43 | 43 | msgstr "Esta data deve ser igual ou posterior a data/hora de inicio" |
| 44 | 44 | |
| 45 | -#: webconference/forms.py:128 webconference/models.py:35 | |
| 45 | +#: webconference/forms.py:130 webconference/models.py:35 | |
| 46 | 46 | msgid "Domain" |
| 47 | 47 | msgstr "Dominio" |
| 48 | 48 | |
| 49 | -#: webconference/forms.py:132 | |
| 49 | +#: webconference/forms.py:134 | |
| 50 | 50 | msgid "The domain of the jitsi server, e.g. meet.jit.si" |
| 51 | 51 | msgstr "O dominio do servidor do jitsi, ex: meet.jit.si" |
| 52 | 52 | ... | ... |
webconference/serializers.py
| ... | ... | @@ -51,7 +51,7 @@ class SimpleWebconferenceSerializer(serializers.ModelSerializer): |
| 51 | 51 | if topic_exist.exists(): |
| 52 | 52 | topic = topic_exist[0] |
| 53 | 53 | else: |
| 54 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
| 54 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
| 55 | 55 | |
| 56 | 56 | data["topic"] = topic |
| 57 | 57 | else: |
| ... | ... | @@ -136,7 +136,7 @@ class CompleteWebconferenceSerializer(serializers.ModelSerializer): |
| 136 | 136 | if topic_exist.exists(): |
| 137 | 137 | topic = topic_exist[0] |
| 138 | 138 | else: |
| 139 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
| 139 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
| 140 | 140 | |
| 141 | 141 | data["topic"] = topic |
| 142 | 142 | else: | ... | ... |
webconference/templates/webconference/_form.html
| ... | ... | @@ -250,7 +250,7 @@ |
| 250 | 250 | <div class="col-md-12"> |
| 251 | 251 | <a data-parent="#professors_accordion" data-toggle="collapse" href="#students"> |
| 252 | 252 | <h4 class="panel-title"> |
| 253 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{{ form.students.label }}</label> | |
| 253 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{% trans 'Students' %}</label> | |
| 254 | 254 | </h4> |
| 255 | 255 | </a> |
| 256 | 256 | </div> | ... | ... |
webpage/forms.py
| ... | ... | @@ -4,6 +4,7 @@ from django.utils.translation import ugettext_lazy as _ |
| 4 | 4 | from django.utils.html import strip_tags |
| 5 | 5 | |
| 6 | 6 | from subjects.models import Tag |
| 7 | +from subjects.forms import ParticipantsMultipleChoiceField | |
| 7 | 8 | |
| 8 | 9 | from .models import Webpage |
| 9 | 10 | |
| ... | ... | @@ -11,6 +12,7 @@ from resubmit.widgets import ResubmitFileWidget |
| 11 | 12 | |
| 12 | 13 | class WebpageForm(forms.ModelForm): |
| 13 | 14 | subject = None |
| 15 | + students = ParticipantsMultipleChoiceField(queryset = None, required = False) | |
| 14 | 16 | |
| 15 | 17 | def __init__(self, *args, **kwargs): |
| 16 | 18 | super(WebpageForm, self).__init__(*args, **kwargs) | ... | ... |
webpage/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| ... | ... | @@ -18,31 +18,31 @@ msgstr "" |
| 18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
| 19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
| 20 | 20 | |
| 21 | -#: webpage/forms.py:27 | |
| 21 | +#: webpage/forms.py:29 | |
| 22 | 22 | msgid "Tags" |
| 23 | 23 | msgstr "Tags" |
| 24 | 24 | |
| 25 | -#: webpage/forms.py:33 | |
| 25 | +#: webpage/forms.py:35 | |
| 26 | 26 | msgid "Webpage name" |
| 27 | 27 | msgstr "Nome da Página Web" |
| 28 | 28 | |
| 29 | -#: webpage/forms.py:34 | |
| 29 | +#: webpage/forms.py:36 | |
| 30 | 30 | msgid "Webpage content" |
| 31 | 31 | msgstr "Conteúdo da Página Web" |
| 32 | 32 | |
| 33 | -#: webpage/forms.py:55 | |
| 33 | +#: webpage/forms.py:57 | |
| 34 | 34 | msgid "This subject already has a webpage with this name" |
| 35 | 35 | msgstr "Esse assunto já possui uma Página Web com esse nome" |
| 36 | 36 | |
| 37 | -#: webpage/forms.py:66 webpage/forms.py:112 | |
| 37 | +#: webpage/forms.py:68 webpage/forms.py:114 | |
| 38 | 38 | msgid "This field is required." |
| 39 | 39 | msgstr "Esse campo é obrigatório." |
| 40 | 40 | |
| 41 | -#: webpage/forms.py:104 | |
| 41 | +#: webpage/forms.py:106 | |
| 42 | 42 | msgid "Message" |
| 43 | 43 | msgstr "Mensagem" |
| 44 | 44 | |
| 45 | -#: webpage/forms.py:124 | |
| 45 | +#: webpage/forms.py:126 | |
| 46 | 46 | msgid "The image is too large. It should have less than 5MB." |
| 47 | 47 | msgstr "A imagem é muito grande. Deve ser menor do que 5MB" |
| 48 | 48 | ... | ... |
webpage/serializers.py
| ... | ... | @@ -51,7 +51,7 @@ class SimpleWebpageSerializer(serializers.ModelSerializer): |
| 51 | 51 | if topic_exist.exists(): |
| 52 | 52 | topic = topic_exist[0] |
| 53 | 53 | else: |
| 54 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
| 54 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
| 55 | 55 | |
| 56 | 56 | data["topic"] = topic |
| 57 | 57 | else: |
| ... | ... | @@ -134,7 +134,7 @@ class CompleteWebpageSerializer(serializers.ModelSerializer): |
| 134 | 134 | if topic_exist.exists(): |
| 135 | 135 | topic = topic_exist[0] |
| 136 | 136 | else: |
| 137 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
| 137 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
| 138 | 138 | |
| 139 | 139 | data["topic"] = topic |
| 140 | 140 | else: | ... | ... |
webpage/templates/webpages/_form.html
| ... | ... | @@ -203,7 +203,7 @@ |
| 203 | 203 | <div class="col-md-12"> |
| 204 | 204 | <a data-parent="#professors_accordion" data-toggle="collapse" href="#students"> |
| 205 | 205 | <h4 class="panel-title"> |
| 206 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{{ form.students.label }}</label> | |
| 206 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{% trans 'Students' %}</label> | |
| 207 | 207 | </h4> |
| 208 | 208 | </a> |
| 209 | 209 | </div> | ... | ... |
youtube_video/forms.py
| ... | ... | @@ -8,6 +8,7 @@ import requests |
| 8 | 8 | import re |
| 9 | 9 | |
| 10 | 10 | from subjects.models import Tag |
| 11 | +from subjects.forms import ParticipantsMultipleChoiceField | |
| 11 | 12 | |
| 12 | 13 | from pendencies.forms import PendenciesForm |
| 13 | 14 | from pendencies.models import Pendencies |
| ... | ... | @@ -18,6 +19,7 @@ from .models import YTVideo |
| 18 | 19 | class YTVideoForm(forms.ModelForm): |
| 19 | 20 | subject = None |
| 20 | 21 | control_subject = forms.CharField(widget = forms.HiddenInput()) |
| 22 | + students = ParticipantsMultipleChoiceField(queryset = None, required = False) | |
| 21 | 23 | |
| 22 | 24 | def __init__(self, *args, **kwargs): |
| 23 | 25 | super(YTVideoForm, self).__init__(*args, **kwargs) | ... | ... |
youtube_video/locale/pt_BR/LC_MESSAGES/django.po
| ... | ... | @@ -8,7 +8,7 @@ msgid "" |
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "Report-Msgid-Bugs-To: \n" |
| 11 | -"POT-Creation-Date: 2017-08-30 22:41-0300\n" | |
| 11 | +"POT-Creation-Date: 2017-09-07 22:29-0300\n" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
| ... | ... | @@ -18,19 +18,19 @@ msgstr "" |
| 18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
| 19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
| 20 | 20 | |
| 21 | -#: youtube_video/forms.py:36 | |
| 21 | +#: youtube_video/forms.py:38 | |
| 22 | 22 | msgid "Tags" |
| 23 | 23 | msgstr "Tags" |
| 24 | 24 | |
| 25 | -#: youtube_video/forms.py:42 | |
| 25 | +#: youtube_video/forms.py:44 | |
| 26 | 26 | msgid "Video title" |
| 27 | 27 | msgstr "Título do Vídeo" |
| 28 | 28 | |
| 29 | -#: youtube_video/forms.py:62 | |
| 29 | +#: youtube_video/forms.py:64 | |
| 30 | 30 | msgid "This subject already has a resource with this name" |
| 31 | 31 | msgstr "Esse assunto já possui um recurso com esse nome" |
| 32 | 32 | |
| 33 | -#: youtube_video/forms.py:71 | |
| 33 | +#: youtube_video/forms.py:73 | |
| 34 | 34 | msgid "Invalid URL. It should be an YouTube link." |
| 35 | 35 | msgstr "URL inválida. Ela deve ser uma URL de um vídeo do YouTube." |
| 36 | 36 | ... | ... |
youtube_video/serializers.py
| ... | ... | @@ -51,7 +51,7 @@ class SimpleYTVideoSerializer(serializers.ModelSerializer): |
| 51 | 51 | if topic_exist.exists(): |
| 52 | 52 | topic = topic_exist[0] |
| 53 | 53 | else: |
| 54 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
| 54 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
| 55 | 55 | |
| 56 | 56 | data["topic"] = topic |
| 57 | 57 | else: |
| ... | ... | @@ -135,7 +135,7 @@ class CompleteYTVideoSerializer(serializers.ModelSerializer): |
| 135 | 135 | if topic_exist.exists(): |
| 136 | 136 | topic = topic_exist[0] |
| 137 | 137 | else: |
| 138 | - topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order']) | |
| 138 | + topic = Topic.objects.create(name = topic['name'], subject = topic['subject'], repository = topic['repository'], visible = topic['visible'], order = topic['order'], description = topic['description']) | |
| 139 | 139 | |
| 140 | 140 | data["topic"] = topic |
| 141 | 141 | else: | ... | ... |
youtube_video/templates/youtube/_form.html
| ... | ... | @@ -209,7 +209,7 @@ |
| 209 | 209 | <div class="col-md-12"> |
| 210 | 210 | <a data-parent="#professors_accordion" data-toggle="collapse" href="#students"> |
| 211 | 211 | <h4 class="panel-title"> |
| 212 | - <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{{ form.students.label }}</label> | |
| 212 | + <button class="btn btn-default btn-xs text-center cat-selector"><i class="fa fa-angle-right fa-2x" aria-hidden="true"></i></button><label for="{{ form.students.auto_id }}">{% trans 'Students' %}</label> | |
| 213 | 213 | </h4> |
| 214 | 214 | </a> |
| 215 | 215 | </div> | ... | ... |