Commit 22ef48d9a42ec236e5dab8de08343028ef4e637d
Exists in
master
and in
3 other branches
Merge branch 'refactoring' of https://github.com/amadeusproject/amadeuslms into refactoring
Showing
10 changed files
with
233 additions
and
233 deletions
Show diff stats
amadeus/static/css/base/amadeus.css
... | ... | @@ -1439,22 +1439,50 @@ div.dataTables_wrapper div.dataTables_paginate { |
1439 | 1439 | .message-sender-container .message-field { |
1440 | 1440 | padding-left: 10px; |
1441 | 1441 | padding-right: 0px; |
1442 | - height: 46px; | |
1442 | + min-height: 46px; | |
1443 | + max-height: 90px; | |
1443 | 1444 | text-align: left; |
1444 | 1445 | } |
1445 | 1446 | .message-sender-container .message-field h4 { |
1446 | 1447 | margin-top: 0px; |
1447 | 1448 | } |
1448 | -.message-sender-container .message-field div { | |
1449 | - height: 46px; | |
1449 | +.message-sender-container .message-field div.message-container { | |
1450 | + min-height: 46px; | |
1451 | + max-height: 90px; | |
1452 | + overflow-y: scroll; | |
1450 | 1453 | padding-top: 14px; |
1451 | - padding-bottom: 14px; | |
1454 | + padding-bottom: 10px; | |
1452 | 1455 | padding-left: 10px; |
1453 | 1456 | padding-right: 10px; |
1454 | 1457 | border-width: 1px; |
1455 | 1458 | border-style: solid; |
1456 | 1459 | } |
1457 | 1460 | |
1461 | +.msg_placeholder { | |
1462 | + position: absolute; | |
1463 | + z-index: 0; | |
1464 | + pointer-events: none; | |
1465 | + visibility: visible; | |
1466 | +} | |
1467 | + | |
1468 | +#msg_editable { | |
1469 | + width: 100%; | |
1470 | + z-index: 1; | |
1471 | +} | |
1472 | + | |
1473 | +.action-button { | |
1474 | + position: absolute; | |
1475 | + bottom: 5px; | |
1476 | + right: 20px; | |
1477 | + height: 36px; | |
1478 | + font-size: 18px; | |
1479 | + width: 40px; | |
1480 | + padding: 2px; | |
1481 | + border: none; | |
1482 | + background: none; | |
1483 | + margin-bottom: 0px !important; | |
1484 | +} | |
1485 | + | |
1458 | 1486 | .talking-header { |
1459 | 1487 | line-height: 0.5 !important; |
1460 | 1488 | margin-top: 0px; | ... | ... |
amadeus/static/js/chat.js
... | ... | @@ -18,13 +18,47 @@ function getModalInfo(btn, space, space_type) { |
18 | 18 | |
19 | 19 | $(this).animate({scrollTop: height}, 0); |
20 | 20 | }); |
21 | + | |
22 | + setShortChatFormSubmit(); | |
23 | + }); | |
24 | + | |
25 | + $("#msg_editable").on('click', function () { | |
26 | + $(this).trigger('focusin'); | |
27 | + }); | |
28 | + | |
29 | + $("#msg_editable").on('focusin', function () { | |
30 | + $("#send-img").hide(); | |
31 | + $("#send-msg").show(); | |
32 | + | |
33 | + $(".msg_placeholder").hide(); | |
34 | + }); | |
35 | + | |
36 | + $("#msg_editable").on('focusout', function (event) { | |
37 | + if (!$(event.relatedTarget).is("#send-msg")) { | |
38 | + $("#send-img").show(); | |
39 | + $("#send-msg").hide(); | |
40 | + | |
41 | + var content = $(this).html(); | |
42 | + | |
43 | + if (content == "") { | |
44 | + $(".msg_placeholder").show(); | |
45 | + } | |
46 | + } | |
47 | + }); | |
48 | + | |
49 | + $("#msg_editable").on('keydown', function (e) { | |
50 | + if (e.keyCode == 13 && !e.shiftKey) { | |
51 | + e.preventDefault(); | |
52 | + | |
53 | + $("#short-chat").submit(); | |
54 | + } | |
21 | 55 | }); |
22 | 56 | } |
23 | 57 | }); |
24 | 58 | } |
25 | 59 | |
26 | 60 | function getForm(field) { |
27 | - var url = field.find('h4').data('url'); | |
61 | + var url = field.data('url'); | |
28 | 62 | |
29 | 63 | $.ajax({ |
30 | 64 | url: url, |
... | ... | @@ -74,4 +108,50 @@ function setChatFormSubmit() { |
74 | 108 | |
75 | 109 | return false; |
76 | 110 | }); |
111 | +} | |
112 | + | |
113 | +function setShortChatFormSubmit() { | |
114 | + var frm = $('#short-chat'), | |
115 | + editable = $("#msg_editable"); | |
116 | + | |
117 | + frm.submit(function (e) { | |
118 | + e.preventDefault(); | |
119 | + e.stopImmediatePropagation(); | |
120 | + | |
121 | + if (editable.html() != "") { | |
122 | + $("#id_text").val("<p>" + editable.html() + "</p>"); | |
123 | + var formData = new FormData($(this)[0]); | |
124 | + | |
125 | + $.ajax({ | |
126 | + type: frm.attr('method'), | |
127 | + url: frm.attr('action'), | |
128 | + data: formData, | |
129 | + dataType: "json", | |
130 | + async: false, | |
131 | + success: function (data) { | |
132 | + $('.messages-list').append(data.view); | |
133 | + | |
134 | + $(".messages-container").each(function () { | |
135 | + var height = $(this)[0].scrollHeight; | |
136 | + | |
137 | + $(this).animate({scrollTop: height}, 0); | |
138 | + }); | |
139 | + | |
140 | + editable.html(""); | |
141 | + editable.trigger("focusout"); | |
142 | + | |
143 | + alertify.success(data.message); | |
144 | + }, | |
145 | + error: function(data) { | |
146 | + alertify.error(data.responseText); | |
147 | + setShortChatFormSubmit(); | |
148 | + }, | |
149 | + cache: false, | |
150 | + contentType: false, | |
151 | + processData: false | |
152 | + }); | |
153 | + } | |
154 | + | |
155 | + return false; | |
156 | + }); | |
77 | 157 | } |
78 | 158 | \ No newline at end of file | ... | ... |
chat/templates/chat/talk.html
1 | 1 | {% load static i18n chat_tags %} |
2 | +{% load widget_tweaks %} | |
2 | 3 | |
3 | 4 | {% is_online participant as status %} |
4 | 5 | |
... | ... | @@ -56,8 +57,20 @@ |
56 | 57 | </div> |
57 | 58 | </div> |
58 | 59 | <div class="col-lg-11 col-md-11 col-sm-11 col-xs-11 message-field"> |
59 | - <div onclick="getForm($(this));"> | |
60 | - <h4 data-url="{% url 'chat:create' participant.email talk_id space space_type %}">{% trans 'Type a new message to ' %}{{ participant }} <i class="fa fa-camera pull-right"></i></h4> | |
60 | + <div class="message-container"> | |
61 | + <form id="short-chat" class="col-md-11" method="post" action="{{ form_url }}" enctype="multipart/form-data"> | |
62 | + {% csrf_token %} | |
63 | + | |
64 | + <div class="msg_placeholder">{% trans 'Type a new message to ' %}{{ participant }}</div> | |
65 | + <div id="msg_editable" contenteditable="true"></div> | |
66 | + {% render_field form.text style="display:none" %} | |
67 | + </form> | |
68 | + <button id="send-img" onclick="getForm($(this));" data-url="{% url 'chat:create' participant.email talk_id space space_type %}" class="action-button" type="button"> | |
69 | + <i class="fa fa-camera"></i> | |
70 | + </button> | |
71 | + <button id="send-msg" class="action-button" type="submit" form="short-chat" style="display:none"> | |
72 | + <i class="fa fa-send"></i> | |
73 | + </button> | |
61 | 74 | </div> |
62 | 75 | </div> |
63 | 76 | </div> | ... | ... |
chat/views.py
... | ... | @@ -137,7 +137,9 @@ class GetTalk(LoginRequiredMixin, generic.ListView): |
137 | 137 | context['talk_id'] = self.talk_id |
138 | 138 | context['space'] = self.request.GET.get('space', '0') |
139 | 139 | context['space_type'] = self.request.GET.get('space_type', 'general') |
140 | - | |
140 | + context['form'] = ChatMessageForm() | |
141 | + context['form_url'] = reverse_lazy('chat:create', args = (), kwargs = {'email': self.kwargs.get('email', ''), 'talk_id': self.talk_id, 'space': self.kwargs.get('space', '0'), 'space_type': self.kwargs.get('space_type', 'general')}) | |
142 | + | |
141 | 143 | return context |
142 | 144 | |
143 | 145 | class SendMessage(LoginRequiredMixin, generic.edit.CreateView): |
... | ... | @@ -205,7 +207,7 @@ class SendMessage(LoginRequiredMixin, generic.edit.CreateView): |
205 | 207 | def get_context_data(self, **kwargs): |
206 | 208 | context = super(SendMessage, self).get_context_data(**kwargs) |
207 | 209 | |
208 | - context['form_url'] = reverse_lazy('chat:create', args = (), kwargs = {'email': self.kwargs.get('email', ''), 'talk_id': self.kwargs.get('talk_id', None), 'space': self.kwargs.get('space', '0'), 'space_type': self.kwargs.get('space_type', 'general')}) | |
210 | + context['form_url'] = reverse_lazy('chat:create', args = (), kwargs = {'email': self.kwargs.get('email', ''), 'talk_id': self.kwargs.get('talk_id', '-1'), 'space': self.kwargs.get('space', '0'), 'space_type': self.kwargs.get('space_type', 'general')}) | |
209 | 211 | |
210 | 212 | return context |
211 | 213 | ... | ... |
file_link/locale/pt-br/LC_MESSAGES/django.po
... | ... | @@ -1,134 +0,0 @@ |
1 | -# SOME DESCRIPTIVE TITLE. | |
2 | -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER | |
3 | -# This file is distributed under the same license as the PACKAGE package. | |
4 | -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. | |
5 | -# | |
6 | -#, fuzzy | |
7 | -msgid "" | |
8 | -msgstr "" | |
9 | -"Project-Id-Version: PACKAGE VERSION\n" | |
10 | -"Report-Msgid-Bugs-To: \n" | |
11 | -"POT-Creation-Date: 2017-02-09 18:40-0300\n" | |
12 | -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | |
13 | -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | |
14 | -"Language-Team: LANGUAGE <LL@li.org>\n" | |
15 | -"Language: \n" | |
16 | -"MIME-Version: 1.0\n" | |
17 | -"Content-Type: text/plain; charset=UTF-8\n" | |
18 | -"Content-Transfer-Encoding: 8bit\n" | |
19 | - | |
20 | -#: file_link/forms.py:26 | |
21 | -msgid "Tags" | |
22 | -msgstr "" | |
23 | - | |
24 | -#: file_link/forms.py:32 | |
25 | -msgid "File name" | |
26 | -msgstr "" | |
27 | - | |
28 | -#: file_link/forms.py:52 | |
29 | -msgid "This subject already has a file link with this name" | |
30 | -msgstr "" | |
31 | - | |
32 | -#: file_link/forms.py:64 | |
33 | -msgid "The file is too large. It should have less than 10MB." | |
34 | -msgstr "" | |
35 | - | |
36 | -#: file_link/forms.py:69 | |
37 | -msgid "This field is required." | |
38 | -msgstr "" | |
39 | - | |
40 | -#: file_link/models.py:22 | |
41 | -msgid "File not supported." | |
42 | -msgstr "" | |
43 | - | |
44 | -#: file_link/models.py:25 | |
45 | -msgid "File" | |
46 | -msgstr "" | |
47 | - | |
48 | -#: file_link/models.py:28 | |
49 | -msgid "File Link" | |
50 | -msgstr "" | |
51 | - | |
52 | -#: file_link/models.py:29 | |
53 | -msgid "File Links" | |
54 | -msgstr "" | |
55 | - | |
56 | -#: file_link/models.py:48 | |
57 | -msgid "Are you sure you want delete the file link" | |
58 | -msgstr "" | |
59 | - | |
60 | -#: file_link/templates/file_links/_form.html:33 | |
61 | -msgid "Choose your file..." | |
62 | -msgstr "" | |
63 | - | |
64 | -#: file_link/templates/file_links/_form.html:47 | |
65 | -msgid "Click or drop the file here" | |
66 | -msgstr "" | |
67 | - | |
68 | -#: file_link/templates/file_links/_form.html:49 | |
69 | -msgid "The file could not exceed 10MB." | |
70 | -msgstr "" | |
71 | - | |
72 | -#: file_link/templates/file_links/_form.html:69 | |
73 | -msgid "Common resources settings" | |
74 | -msgstr "" | |
75 | - | |
76 | -#: file_link/templates/file_links/_form.html:118 | |
77 | -msgid "Pendencies Notifications" | |
78 | -msgstr "" | |
79 | - | |
80 | -#: file_link/templates/file_links/_form.html:134 | |
81 | -msgid "Action not performed by the user" | |
82 | -msgstr "" | |
83 | - | |
84 | -#: file_link/templates/file_links/_form.html:160 | |
85 | -msgid "Wished period" | |
86 | -msgstr "" | |
87 | - | |
88 | -#: file_link/templates/file_links/_form.html:256 | |
89 | -msgid "Attribute students to file link" | |
90 | -msgstr "" | |
91 | - | |
92 | -#: file_link/templates/file_links/_form.html:276 | |
93 | -msgid "Attribute groups to file link" | |
94 | -msgstr "" | |
95 | - | |
96 | -#: file_link/templates/file_links/_form.html:322 | |
97 | -msgid "Save" | |
98 | -msgstr "" | |
99 | - | |
100 | -#: file_link/templates/file_links/create.html:20 file_link/views.py:177 | |
101 | -msgid "Create File Link" | |
102 | -msgstr "" | |
103 | - | |
104 | -#: file_link/templates/file_links/update.html:20 | |
105 | -msgid "Edit: " | |
106 | -msgstr "" | |
107 | - | |
108 | -#: file_link/views.py:104 file_link/views.py:117 file_link/views.py:227 | |
109 | -#: file_link/views.py:229 file_link/views.py:245 file_link/views.py:247 | |
110 | -msgid "Visualize" | |
111 | -msgstr "" | |
112 | - | |
113 | -#: file_link/views.py:188 | |
114 | -#, python-format | |
115 | -msgid "" | |
116 | -"The File Link \"%s\" was added to the Topic \"%s\" of the virtual " | |
117 | -"environment \"%s\" successfully!" | |
118 | -msgstr "" | |
119 | - | |
120 | -#: file_link/views.py:291 | |
121 | -msgid "Update File Link" | |
122 | -msgstr "" | |
123 | - | |
124 | -#: file_link/views.py:302 | |
125 | -#, python-format | |
126 | -msgid "The File Link \"%s\" was updated successfully!" | |
127 | -msgstr "" | |
128 | - | |
129 | -#: file_link/views.py:329 | |
130 | -#, python-format | |
131 | -msgid "" | |
132 | -"The File Link \"%s\" was removed successfully from virtual environment \"%s" | |
133 | -"\"!" | |
134 | -msgstr "" |
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-03-09 17:01-0300\n" | |
11 | +"POT-Creation-Date: 2017-03-21 12:36-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,100 +18,103 @@ 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 | +#: .\forms.py:26 | |
22 | 22 | msgid "Tags" |
23 | 23 | msgstr "Tags" |
24 | 24 | |
25 | -#: file_link/forms.py:32 | |
25 | +#: .\forms.py:32 | |
26 | 26 | msgid "File name" |
27 | 27 | msgstr "Nome do arquivo" |
28 | 28 | |
29 | -#: file_link/forms.py:52 | |
29 | +#: .\forms.py:52 | |
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 | +#: .\forms.py:64 | |
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 | +#: .\forms.py:69 | |
38 | 38 | msgid "This field is required." |
39 | 39 | msgstr "Esse campo é obrigatório." |
40 | 40 | |
41 | -#: file_link/models.py:23 | |
42 | -msgid "File not supported." | |
43 | -msgstr "Arquivo não suportado." | |
41 | +#: .\models.py:23 | |
42 | +msgid "" | |
43 | +"Please select a valid file. The uploaded file must have one of the following " | |
44 | +"extensions: .doc, .docx, .html, .jpg, .odp, .ods, .odt, .pdf, .png, .ppt, ." | |
45 | +"pptx, .xlx e .xlsx" | |
46 | +msgstr "Por favor selecione um arquivo válido. O arquivo enviado deve possuir uma das seguintes extensões: .doc, .docx, .html, .jpg, .odp, .ods, .odt, .pdf, .png, .ppt, .pptx, .xlx e .xlsx" | |
44 | 47 | |
45 | -#: file_link/models.py:26 | |
48 | +#: .\models.py:26 | |
46 | 49 | msgid "File" |
47 | 50 | msgstr "Arquivo" |
48 | 51 | |
49 | -#: file_link/models.py:29 | |
52 | +#: .\models.py:29 | |
50 | 53 | msgid "File Link" |
51 | 54 | msgstr "Link para Arquivo" |
52 | 55 | |
53 | -#: file_link/models.py:30 | |
56 | +#: .\models.py:30 | |
54 | 57 | msgid "File Links" |
55 | 58 | msgstr "Links para Arquivo" |
56 | 59 | |
57 | -#: file_link/models.py:49 | |
60 | +#: .\models.py:49 | |
58 | 61 | msgid "Are you sure you want delete the file link" |
59 | 62 | msgstr "Você tem certeza que deseja remover o Link para Arquivo" |
60 | 63 | |
61 | -#: file_link/templates/file_links/_form.html:33 | |
64 | +#: .\templates\file_links\_form.html:33 | |
62 | 65 | msgid "Choose your file..." |
63 | 66 | msgstr "Escolha seu arquivo..." |
64 | 67 | |
65 | -#: file_link/templates/file_links/_form.html:47 | |
68 | +#: .\templates\file_links\_form.html:47 | |
66 | 69 | msgid "Click or drop the file here" |
67 | 70 | msgstr "Clique ou solte o arquivo aqui" |
68 | 71 | |
69 | -#: file_link/templates/file_links/_form.html:49 | |
72 | +#: .\templates\file_links\_form.html:49 | |
70 | 73 | msgid "The file could not exceed 10MB." |
71 | 74 | msgstr "O arquivo não pode exceder 10MB." |
72 | 75 | |
73 | -#: file_link/templates/file_links/_form.html:69 | |
76 | +#: .\templates\file_links\_form.html:69 | |
74 | 77 | msgid "Common resources settings" |
75 | 78 | msgstr "Configurações comuns à todos os recursos" |
76 | 79 | |
77 | -#: file_link/templates/file_links/_form.html:118 | |
80 | +#: .\templates\file_links\_form.html:118 | |
78 | 81 | msgid "Pendencies Notifications" |
79 | 82 | msgstr "Notificações de Pendências" |
80 | 83 | |
81 | -#: file_link/templates/file_links/_form.html:134 | |
84 | +#: .\templates\file_links\_form.html:134 | |
82 | 85 | msgid "Action not performed by the user" |
83 | 86 | msgstr "Ação não realizada pelo usuário" |
84 | 87 | |
85 | -#: file_link/templates/file_links/_form.html:160 | |
88 | +#: .\templates\file_links\_form.html:160 | |
86 | 89 | msgid "Wished period" |
87 | 90 | msgstr "Período desejado" |
88 | 91 | |
89 | -#: file_link/templates/file_links/_form.html:256 | |
92 | +#: .\templates\file_links\_form.html:256 | |
90 | 93 | msgid "Attribute students to file link" |
91 | 94 | msgstr "Atribuir estudantes ao Link para Arquivo" |
92 | 95 | |
93 | -#: file_link/templates/file_links/_form.html:276 | |
96 | +#: .\templates\file_links\_form.html:276 | |
94 | 97 | msgid "Attribute groups to file link" |
95 | 98 | msgstr "Atribuir grupos de estudo ao Link para Arquivo" |
96 | 99 | |
97 | -#: file_link/templates/file_links/_form.html:322 | |
100 | +#: .\templates\file_links\_form.html:322 | |
98 | 101 | msgid "Save" |
99 | 102 | msgstr "Salvar" |
100 | 103 | |
101 | -#: file_link/templates/file_links/create.html:20 file_link/views.py:177 | |
104 | +#: .\templates\file_links\create.html:20 .\views.py:177 | |
102 | 105 | msgid "Create File Link" |
103 | 106 | msgstr "Criar Link para Arquivo" |
104 | 107 | |
105 | -#: file_link/templates/file_links/update.html:20 | |
108 | +#: .\templates\file_links\update.html:20 | |
106 | 109 | msgid "Edit: " |
107 | 110 | msgstr "Editar: " |
108 | 111 | |
109 | -#: file_link/views.py:104 file_link/views.py:117 file_link/views.py:227 | |
110 | -#: file_link/views.py:229 file_link/views.py:245 file_link/views.py:247 | |
112 | +#: .\views.py:104 .\views.py:117 .\views.py:227 .\views.py:229 .\views.py:245 | |
113 | +#: .\views.py:247 | |
111 | 114 | msgid "Visualize" |
112 | 115 | msgstr "Visualizar" |
113 | 116 | |
114 | -#: file_link/views.py:188 | |
117 | +#: .\views.py:188 | |
115 | 118 | #, python-format |
116 | 119 | msgid "" |
117 | 120 | "The File Link \"%s\" was added to the Topic \"%s\" of the virtual " |
... | ... | @@ -120,16 +123,16 @@ msgstr "" |
120 | 123 | "O Link para Arquivo \"%s\" foi adicionado ao tópico \"%s\" do ambiente " |
121 | 124 | "virtual \"%s\" com sucesso!" |
122 | 125 | |
123 | -#: file_link/views.py:291 | |
126 | +#: .\views.py:291 | |
124 | 127 | msgid "Update File Link" |
125 | 128 | msgstr "Atualizar Link para Arquivo" |
126 | 129 | |
127 | -#: file_link/views.py:302 | |
130 | +#: .\views.py:302 | |
128 | 131 | #, python-format |
129 | 132 | msgid "The File Link \"%s\" was updated successfully!" |
130 | 133 | msgstr "O Link para Arquivo \"%s\" foi atualizado com sucesso!" |
131 | 134 | |
132 | -#: file_link/views.py:329 | |
135 | +#: .\views.py:329 | |
133 | 136 | #, python-format |
134 | 137 | msgid "" |
135 | 138 | "The File Link \"%s\" was removed successfully from virtual environment \"%s" |
... | ... | @@ -138,6 +141,9 @@ msgstr "" |
138 | 141 | "O Link para Arquivo \"%s\" foi removido do ambiente virtual \"%s\" com " |
139 | 142 | "sucesso!" |
140 | 143 | |
144 | +#~ msgid "File not supported." | |
145 | +#~ msgstr "Arquivo não suportado." | |
146 | + | |
141 | 147 | #~ msgid "Close" |
142 | 148 | #~ msgstr "Fechar" |
143 | 149 | ... | ... |
file_link/models.py
... | ... | @@ -17,10 +17,10 @@ def validate_file_extension(value): |
17 | 17 | 'application/vnd.oasis.opendocument.spreadsheet','application/vnd.oasis.opendocument.text', |
18 | 18 | 'application/pdf' |
19 | 19 | ] |
20 | - | |
20 | + | |
21 | 21 | if hasattr(value.file, 'content_type'): |
22 | 22 | if not value.file.content_type in valid_formats: |
23 | - raise ValidationError(_('File not supported.')) | |
23 | + raise ValidationError(_('Please select a valid file. The uploaded file must have one of the following extensions: .doc, .docx, .html, .jpg, .odp, .ods, .odt, .pdf, .png, .ppt, .pptx, .xlx e .xlsx')) | |
24 | 24 | |
25 | 25 | class FileLink(Resource): |
26 | 26 | file_content = models.FileField(_('File'), blank = True, upload_to = 'files/', validators = [validate_file_extension]) | ... | ... |
themes/templates/themes/css_update.html
... | ... | @@ -25,12 +25,12 @@ |
25 | 25 | {% else %} |
26 | 26 | <label for="{{ field.auto_id }}">{{ field.label }}</label> |
27 | 27 | {% endif %} |
28 | - | |
28 | + | |
29 | 29 | <br clear="all" /> |
30 | 30 | |
31 | 31 | {% for radio in field %} |
32 | 32 | <label for="{{ radio.id_for_label }}" class="row text-center"> |
33 | - <div class="col-lg-offset-2 col-md-offset-2 col-sm-offset-2 col-lg-2 col-md-2 col-sm-2 col-xs-3"> | |
33 | + <div class="col-lg-offset-2 col-md-offset-2 col-sm-offset-2 col-lg-2 col-md-2 col-sm-2 col-xs-3 text-left"> | |
34 | 34 | <span class="radio"> |
35 | 35 | {{ radio }} |
36 | 36 | </span> |
... | ... | @@ -75,4 +75,4 @@ |
75 | 75 | </div> |
76 | 76 | <br clear="all" /> |
77 | 77 | <br clear="all" /> |
78 | -{% endblock %} | |
79 | 78 | \ No newline at end of file |
79 | +{% endblock %} | ... | ... |
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-03-09 17:01-0300\n" | |
11 | +"POT-Creation-Date: 2017-03-20 21:48-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,189 +18,194 @@ msgstr "" |
18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
19 | 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" |
20 | 20 | |
21 | -#: topics/forms.py:28 | |
21 | +#: .\forms.py:28 | |
22 | 22 | msgid "This subject already has a repository" |
23 | 23 | msgstr "Esse assunto já possui um repositório" |
24 | 24 | |
25 | -#: topics/forms.py:30 | |
25 | +#: .\forms.py:30 | |
26 | 26 | msgid "This subject already has a topic with this name" |
27 | 27 | msgstr "Esse assunto já possui um tópico com esse nome" |
28 | 28 | |
29 | -#: topics/models.py:12 topics/models.py:51 | |
29 | +#: .\models.py:12 .\models.py:51 | |
30 | 30 | msgid "Name" |
31 | 31 | msgstr "Nome" |
32 | 32 | |
33 | -#: topics/models.py:13 topics/models.py:52 | |
33 | +#: .\models.py:13 .\models.py:52 | |
34 | 34 | msgid "Slug" |
35 | 35 | msgstr "Slug" |
36 | 36 | |
37 | -#: topics/models.py:14 | |
37 | +#: .\models.py:14 | |
38 | 38 | msgid "Description" |
39 | 39 | msgstr "Descrição" |
40 | 40 | |
41 | -#: topics/models.py:15 | |
41 | +#: .\models.py:15 | |
42 | 42 | msgid "Repository" |
43 | 43 | msgstr "Repositório" |
44 | 44 | |
45 | -#: topics/models.py:16 topics/models.py:56 | |
45 | +#: .\models.py:16 .\models.py:56 | |
46 | 46 | msgid "Visible" |
47 | 47 | msgstr "Visível" |
48 | 48 | |
49 | -#: topics/models.py:17 | |
49 | +#: .\models.py:17 | |
50 | 50 | msgid "Subject" |
51 | 51 | msgstr "Assunto" |
52 | 52 | |
53 | -#: topics/models.py:18 topics/models.py:57 | |
53 | +#: .\models.py:18 .\models.py:57 | |
54 | 54 | msgid "Order" |
55 | 55 | msgstr "Ordem" |
56 | 56 | |
57 | -#: topics/models.py:19 topics/models.py:62 | |
57 | +#: .\models.py:19 .\models.py:62 | |
58 | 58 | msgid "Create Date" |
59 | 59 | msgstr "Data de criação" |
60 | 60 | |
61 | -#: topics/models.py:20 topics/models.py:63 | |
61 | +#: .\models.py:20 .\models.py:63 | |
62 | 62 | msgid "Last Update" |
63 | 63 | msgstr "Última Atualização" |
64 | 64 | |
65 | -#: topics/models.py:23 topics/models.py:58 | |
65 | +#: .\models.py:23 .\models.py:58 | |
66 | 66 | msgid "Topic" |
67 | 67 | msgstr "Tópico" |
68 | 68 | |
69 | -#: topics/models.py:24 | |
69 | +#: .\models.py:24 | |
70 | 70 | msgid "Topics" |
71 | 71 | msgstr "Tópicos" |
72 | 72 | |
73 | -#: topics/models.py:53 | |
73 | +#: .\models.py:53 | |
74 | 74 | msgid "Brief Description" |
75 | 75 | msgstr "Descrição Breve" |
76 | 76 | |
77 | -#: topics/models.py:54 | |
77 | +#: .\models.py:54 | |
78 | 78 | msgid "Show in new window" |
79 | 79 | msgstr "Exibir em nova janela" |
80 | 80 | |
81 | -#: topics/models.py:55 | |
81 | +#: .\models.py:55 | |
82 | 82 | msgid "All Students" |
83 | 83 | msgstr "Todos os estudantes habilitados para acessar o recurso" |
84 | 84 | |
85 | -#: topics/models.py:59 | |
85 | +#: .\models.py:59 | |
86 | 86 | msgid "Students" |
87 | 87 | msgstr "Estudantes" |
88 | 88 | |
89 | -#: topics/models.py:60 | |
89 | +#: .\models.py:60 | |
90 | 90 | msgid "Groups" |
91 | 91 | msgstr "Grupos de Estudo" |
92 | 92 | |
93 | -#: topics/models.py:61 | |
93 | +#: .\models.py:61 | |
94 | 94 | msgid "Markers" |
95 | 95 | msgstr "Marcadores" |
96 | 96 | |
97 | -#: topics/models.py:66 | |
97 | +#: .\models.py:66 | |
98 | 98 | msgid "Resource" |
99 | 99 | msgstr "Recurso" |
100 | 100 | |
101 | -#: topics/models.py:67 | |
101 | +#: .\models.py:67 | |
102 | 102 | msgid "Resources" |
103 | 103 | msgstr "Recursos" |
104 | 104 | |
105 | -#: topics/templates/resources/delete.html:14 | |
106 | -#: topics/templates/topics/delete.html:15 | |
105 | +#: .\templates\resources\delete.html:14 .\templates\topics\delete.html:15 | |
107 | 106 | msgid "Close" |
108 | 107 | msgstr "Fechar" |
109 | 108 | |
110 | -#: topics/templates/resources/delete.html:17 | |
111 | -#: topics/templates/topics/delete.html:18 | |
109 | +#: .\templates\resources\delete.html:17 .\templates\topics\delete.html:18 | |
112 | 110 | msgid "Delete" |
113 | 111 | msgstr "Deletar" |
114 | 112 | |
115 | -#: topics/templates/resources/list.html:31 topics/templates/topics/list.html:28 | |
113 | +#: .\templates\resources\list.html:31 .\templates\topics\list.html:28 | |
116 | 114 | msgid "Edit" |
117 | 115 | msgstr "Editar" |
118 | 116 | |
119 | -#: topics/templates/resources/list.html:33 | |
117 | +#: .\templates\resources\list.html:33 | |
120 | 118 | msgid "Reports" |
121 | 119 | msgstr "Relatórios" |
122 | 120 | |
123 | -#: topics/templates/resources/list.html:35 topics/templates/topics/list.html:29 | |
121 | +#: .\templates\resources\list.html:35 .\templates\topics\list.html:29 | |
124 | 122 | msgid "Remove" |
125 | 123 | msgstr "Remover" |
126 | 124 | |
127 | -#: topics/templates/topics/_form.html:21 | |
125 | +#: .\templates\topics\_form.html:21 | |
128 | 126 | msgid "Only one topic per subject can be a repository" |
129 | 127 | msgstr "Apenas um tópico por asssunto pode ser um repositório" |
130 | 128 | |
131 | -#: topics/templates/topics/_form.html:52 | |
129 | +#: .\templates\topics\_form.html:52 | |
132 | 130 | msgid "Save" |
133 | 131 | msgstr "Salvar" |
134 | 132 | |
135 | -#: topics/templates/topics/create.html:8 topics/views.py:85 | |
133 | +#: .\templates\topics\create.html:8 .\views.py:85 | |
136 | 134 | msgid "Create Topic" |
137 | 135 | msgstr "Criar Tópico" |
138 | 136 | |
139 | -#: topics/templates/topics/delete.html:9 | |
137 | +#: .\templates\topics\delete.html:9 | |
140 | 138 | msgid "Are you sure you want delete the topic" |
141 | 139 | msgstr "Tem certeza que deseja deletar o tópico" |
142 | 140 | |
143 | -#: topics/templates/topics/delete.html:10 | |
141 | +#: .\templates\topics\delete.html:10 | |
144 | 142 | msgid "All data will be lost and havent how recover it." |
145 | 143 | msgstr "Todas as informações serão perdidas e não poderão ser recuperadas." |
146 | 144 | |
147 | -#: topics/templates/topics/list.html:52 | |
145 | +#: .\templates\topics\list.html:52 | |
148 | 146 | msgid "Add Resource" |
149 | 147 | msgstr "Adicionar Recurso" |
150 | 148 | |
151 | -#: topics/templates/topics/list.html:55 | |
149 | +#: .\templates\topics\list.html:55 | |
152 | 150 | msgid "PDF File" |
153 | 151 | msgstr "Arquivo PDF" |
154 | 152 | |
155 | -#: topics/templates/topics/list.html:56 | |
156 | -msgid "Video Embed" | |
157 | -msgstr "Embed de Vídeo" | |
153 | +#: .\templates\topics\list.html:56 | |
154 | +msgid "YouTube Video" | |
155 | +msgstr "Video do YouTube" | |
158 | 156 | |
159 | -#: topics/templates/topics/list.html:57 | |
157 | +#: .\templates\topics\list.html:57 | |
160 | 158 | msgid "Forum" |
161 | 159 | msgstr "Fórum" |
162 | 160 | |
163 | -#: topics/templates/topics/list.html:58 | |
161 | +#: .\templates\topics\list.html:58 | |
164 | 162 | msgid "File Link" |
165 | 163 | msgstr "Link para arquivo" |
166 | 164 | |
167 | -#: topics/templates/topics/list.html:59 | |
165 | +#: .\templates\topics\list.html:59 | |
168 | 166 | msgid "Link to Website" |
169 | 167 | msgstr "Link para Site" |
170 | 168 | |
171 | -#: topics/templates/topics/list.html:60 | |
172 | -msgid "Webpage" | |
173 | -msgstr "Página Web" | |
174 | - | |
175 | -#: topics/templates/topics/list.html:61 | |
169 | +#: .\templates\topics\list.html:60 | |
176 | 170 | msgid "Topic Goals" |
177 | 171 | msgstr "Metas do Tópico" |
178 | 172 | |
179 | -#: topics/templates/topics/list.html:62 | |
173 | +#: .\templates\topics\list.html:61 | |
174 | +msgid "Webpage" | |
175 | +msgstr "Página Web" | |
176 | + | |
177 | +#: .\templates\topics\list.html:62 | |
180 | 178 | msgid "Questionary" |
181 | 179 | msgstr "Questionário" |
182 | 180 | |
183 | -#: topics/templates/topics/update.html:8 topics/views.py:134 | |
181 | +#: .\templates\topics\list.html:63 | |
182 | +msgid "Web Conference" | |
183 | +msgstr "" | |
184 | + | |
185 | +#: .\templates\topics\update.html:8 .\views.py:134 | |
184 | 186 | msgid "Update Topic" |
185 | 187 | msgstr "Atualizar Tópico" |
186 | 188 | |
187 | -#: topics/views.py:95 | |
189 | +#: .\views.py:95 | |
188 | 190 | #, python-format |
189 | 191 | msgid "Topic \"%s\" was created on virtual enviroment \"%s\" successfully!" |
190 | 192 | msgstr "Tópico \"%s\" foi criado no ambiente virtual \"%s\" com sucesso!" |
191 | 193 | |
192 | -#: topics/views.py:151 | |
194 | +#: .\views.py:151 | |
193 | 195 | #, python-format |
194 | 196 | msgid "Topic \"%s\" was updated on virtual enviroment \"%s\" successfully!" |
195 | 197 | msgstr "Tópico \"%s\" foi atualizado no ambiente virtual \"%s\" com sucesso!" |
196 | 198 | |
197 | -#: topics/views.py:193 | |
199 | +#: .\views.py:193 | |
198 | 200 | msgid "Could not remove this topic. It has one or more resources attached." |
199 | 201 | msgstr "" |
200 | 202 | "Não é possível remover esse tópico. Ele possui um ou mais recursos " |
201 | 203 | "vinculados." |
202 | 204 | |
203 | -#: topics/views.py:202 | |
205 | +#: .\views.py:202 | |
204 | 206 | #, python-format |
205 | 207 | msgid "Topic \"%s\" was removed from virtual enviroment \"%s\" successfully!" |
206 | 208 | msgstr "Tópico \"%s\" foi removido do ambiente virtual \"%s\" com sucesso!" |
209 | + | |
210 | +#~ msgid "Video Embed" | |
211 | +#~ msgstr "Embed de Vídeo" | ... | ... |
topics/templates/topics/list.html
... | ... | @@ -53,7 +53,7 @@ |
53 | 53 | </button> |
54 | 54 | <ul class="dropdown-menu"> |
55 | 55 | <li><a href="{% url 'pdf_files:create' topic.slug %}"><i class="fa fa-file-pdf-o"></i> {% trans "PDF File" %}</a></li> |
56 | - <li><a href="{% url 'youtube:create' topic.slug %}"><i class="fa fa-video-camera"></i> {% trans 'Video Embed' %}</a></li> | |
56 | + <li><a href="{% url 'youtube:create' topic.slug %}"><i class="fa fa-video-camera"></i> {% trans 'YouTube Video' %}</a></li> | |
57 | 57 | <li><a href="#"><i class="fa fa-comments-o"></i> {% trans 'Forum' %}</a></li> |
58 | 58 | <li><a href="{% url 'file_links:create' topic.slug %}"><i class="fa fa-file-archive-o"></i> {% trans 'File Link' %}</a></li> |
59 | 59 | <li><a href="{% url 'links:create' topic.slug %}" > <i class="fa fa-globe"></i> {% trans "Link to Website" %}</a> | ... | ... |