Commit 22ef48d9a42ec236e5dab8de08343028ef4e637d

Authored by fbormann
2 parents 4ebbf87e 0232d000

Merge branch 'refactoring' of https://github.com/amadeusproject/amadeuslms into refactoring

amadeus/static/css/base/amadeus.css
@@ -1439,22 +1439,50 @@ div.dataTables_wrapper div.dataTables_paginate { @@ -1439,22 +1439,50 @@ div.dataTables_wrapper div.dataTables_paginate {
1439 .message-sender-container .message-field { 1439 .message-sender-container .message-field {
1440 padding-left: 10px; 1440 padding-left: 10px;
1441 padding-right: 0px; 1441 padding-right: 0px;
1442 - height: 46px; 1442 + min-height: 46px;
  1443 + max-height: 90px;
1443 text-align: left; 1444 text-align: left;
1444 } 1445 }
1445 .message-sender-container .message-field h4 { 1446 .message-sender-container .message-field h4 {
1446 margin-top: 0px; 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 padding-top: 14px; 1453 padding-top: 14px;
1451 - padding-bottom: 14px; 1454 + padding-bottom: 10px;
1452 padding-left: 10px; 1455 padding-left: 10px;
1453 padding-right: 10px; 1456 padding-right: 10px;
1454 border-width: 1px; 1457 border-width: 1px;
1455 border-style: solid; 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 .talking-header { 1486 .talking-header {
1459 line-height: 0.5 !important; 1487 line-height: 0.5 !important;
1460 margin-top: 0px; 1488 margin-top: 0px;
amadeus/static/js/chat.js
@@ -18,13 +18,47 @@ function getModalInfo(btn, space, space_type) { @@ -18,13 +18,47 @@ function getModalInfo(btn, space, space_type) {
18 18
19 $(this).animate({scrollTop: height}, 0); 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 function getForm(field) { 60 function getForm(field) {
27 - var url = field.find('h4').data('url'); 61 + var url = field.data('url');
28 62
29 $.ajax({ 63 $.ajax({
30 url: url, 64 url: url,
@@ -74,4 +108,50 @@ function setChatFormSubmit() { @@ -74,4 +108,50 @@ function setChatFormSubmit() {
74 108
75 return false; 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 \ No newline at end of file 158 \ No newline at end of file
chat/templates/chat/talk.html
1 {% load static i18n chat_tags %} 1 {% load static i18n chat_tags %}
  2 +{% load widget_tweaks %}
2 3
3 {% is_online participant as status %} 4 {% is_online participant as status %}
4 5
@@ -56,8 +57,20 @@ @@ -56,8 +57,20 @@
56 </div> 57 </div>
57 </div> 58 </div>
58 <div class="col-lg-11 col-md-11 col-sm-11 col-xs-11 message-field"> 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 </div> 74 </div>
62 </div> 75 </div>
63 </div> 76 </div>
@@ -137,7 +137,9 @@ class GetTalk(LoginRequiredMixin, generic.ListView): @@ -137,7 +137,9 @@ class GetTalk(LoginRequiredMixin, generic.ListView):
137 context['talk_id'] = self.talk_id 137 context['talk_id'] = self.talk_id
138 context['space'] = self.request.GET.get('space', '0') 138 context['space'] = self.request.GET.get('space', '0')
139 context['space_type'] = self.request.GET.get('space_type', 'general') 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 return context 143 return context
142 144
143 class SendMessage(LoginRequiredMixin, generic.edit.CreateView): 145 class SendMessage(LoginRequiredMixin, generic.edit.CreateView):
@@ -205,7 +207,7 @@ class SendMessage(LoginRequiredMixin, generic.edit.CreateView): @@ -205,7 +207,7 @@ class SendMessage(LoginRequiredMixin, generic.edit.CreateView):
205 def get_context_data(self, **kwargs): 207 def get_context_data(self, **kwargs):
206 context = super(SendMessage, self).get_context_data(**kwargs) 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 return context 212 return context
211 213
file_link/locale/pt-br/LC_MESSAGES/django.po
@@ -1,134 +0,0 @@ @@ -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 &quot;&quot; @@ -8,7 +8,7 @@ msgid &quot;&quot;
8 msgstr "" 8 msgstr ""
9 "Project-Id-Version: PACKAGE VERSION\n" 9 "Project-Id-Version: PACKAGE VERSION\n"
10 "Report-Msgid-Bugs-To: \n" 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 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 12 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14 "Language-Team: LANGUAGE <LL@li.org>\n" 14 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,100 +18,103 @@ msgstr &quot;&quot; @@ -18,100 +18,103 @@ msgstr &quot;&quot;
18 "Content-Transfer-Encoding: 8bit\n" 18 "Content-Transfer-Encoding: 8bit\n"
19 "Plural-Forms: nplurals=2; plural=(n > 1);\n" 19 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
20 20
21 -#: file_link/forms.py:26 21 +#: .\forms.py:26
22 msgid "Tags" 22 msgid "Tags"
23 msgstr "Tags" 23 msgstr "Tags"
24 24
25 -#: file_link/forms.py:32 25 +#: .\forms.py:32
26 msgid "File name" 26 msgid "File name"
27 msgstr "Nome do arquivo" 27 msgstr "Nome do arquivo"
28 28
29 -#: file_link/forms.py:52 29 +#: .\forms.py:52
30 msgid "This subject already has a file link with this name" 30 msgid "This subject already has a file link with this name"
31 msgstr "Esse assunto já possui um Link para Arquivo com esse nome" 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 msgid "The file is too large. It should have less than 10MB." 34 msgid "The file is too large. It should have less than 10MB."
35 msgstr "Esse arquivo é muito grande. Ele deve conter menos de 10MB." 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 msgid "This field is required." 38 msgid "This field is required."
39 msgstr "Esse campo é obrigatório." 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 msgid "File" 49 msgid "File"
47 msgstr "Arquivo" 50 msgstr "Arquivo"
48 51
49 -#: file_link/models.py:29 52 +#: .\models.py:29
50 msgid "File Link" 53 msgid "File Link"
51 msgstr "Link para Arquivo" 54 msgstr "Link para Arquivo"
52 55
53 -#: file_link/models.py:30 56 +#: .\models.py:30
54 msgid "File Links" 57 msgid "File Links"
55 msgstr "Links para Arquivo" 58 msgstr "Links para Arquivo"
56 59
57 -#: file_link/models.py:49 60 +#: .\models.py:49
58 msgid "Are you sure you want delete the file link" 61 msgid "Are you sure you want delete the file link"
59 msgstr "Você tem certeza que deseja remover o Link para Arquivo" 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 msgid "Choose your file..." 65 msgid "Choose your file..."
63 msgstr "Escolha seu arquivo..." 66 msgstr "Escolha seu arquivo..."
64 67
65 -#: file_link/templates/file_links/_form.html:47 68 +#: .\templates\file_links\_form.html:47
66 msgid "Click or drop the file here" 69 msgid "Click or drop the file here"
67 msgstr "Clique ou solte o arquivo aqui" 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 msgid "The file could not exceed 10MB." 73 msgid "The file could not exceed 10MB."
71 msgstr "O arquivo não pode exceder 10MB." 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 msgid "Common resources settings" 77 msgid "Common resources settings"
75 msgstr "Configurações comuns à todos os recursos" 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 msgid "Pendencies Notifications" 81 msgid "Pendencies Notifications"
79 msgstr "Notificações de Pendências" 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 msgid "Action not performed by the user" 85 msgid "Action not performed by the user"
83 msgstr "Ação não realizada pelo usuário" 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 msgid "Wished period" 89 msgid "Wished period"
87 msgstr "Período desejado" 90 msgstr "Período desejado"
88 91
89 -#: file_link/templates/file_links/_form.html:256 92 +#: .\templates\file_links\_form.html:256
90 msgid "Attribute students to file link" 93 msgid "Attribute students to file link"
91 msgstr "Atribuir estudantes ao Link para Arquivo" 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 msgid "Attribute groups to file link" 97 msgid "Attribute groups to file link"
95 msgstr "Atribuir grupos de estudo ao Link para Arquivo" 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 msgid "Save" 101 msgid "Save"
99 msgstr "Salvar" 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 msgid "Create File Link" 105 msgid "Create File Link"
103 msgstr "Criar Link para Arquivo" 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 msgid "Edit: " 109 msgid "Edit: "
107 msgstr "Editar: " 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 msgid "Visualize" 114 msgid "Visualize"
112 msgstr "Visualizar" 115 msgstr "Visualizar"
113 116
114 -#: file_link/views.py:188 117 +#: .\views.py:188
115 #, python-format 118 #, python-format
116 msgid "" 119 msgid ""
117 "The File Link \"%s\" was added to the Topic \"%s\" of the virtual " 120 "The File Link \"%s\" was added to the Topic \"%s\" of the virtual "
@@ -120,16 +123,16 @@ msgstr &quot;&quot; @@ -120,16 +123,16 @@ msgstr &quot;&quot;
120 "O Link para Arquivo \"%s\" foi adicionado ao tópico \"%s\" do ambiente " 123 "O Link para Arquivo \"%s\" foi adicionado ao tópico \"%s\" do ambiente "
121 "virtual \"%s\" com sucesso!" 124 "virtual \"%s\" com sucesso!"
122 125
123 -#: file_link/views.py:291 126 +#: .\views.py:291
124 msgid "Update File Link" 127 msgid "Update File Link"
125 msgstr "Atualizar Link para Arquivo" 128 msgstr "Atualizar Link para Arquivo"
126 129
127 -#: file_link/views.py:302 130 +#: .\views.py:302
128 #, python-format 131 #, python-format
129 msgid "The File Link \"%s\" was updated successfully!" 132 msgid "The File Link \"%s\" was updated successfully!"
130 msgstr "O Link para Arquivo \"%s\" foi atualizado com sucesso!" 133 msgstr "O Link para Arquivo \"%s\" foi atualizado com sucesso!"
131 134
132 -#: file_link/views.py:329 135 +#: .\views.py:329
133 #, python-format 136 #, python-format
134 msgid "" 137 msgid ""
135 "The File Link \"%s\" was removed successfully from virtual environment \"%s" 138 "The File Link \"%s\" was removed successfully from virtual environment \"%s"
@@ -138,6 +141,9 @@ msgstr &quot;&quot; @@ -138,6 +141,9 @@ msgstr &quot;&quot;
138 "O Link para Arquivo \"%s\" foi removido do ambiente virtual \"%s\" com " 141 "O Link para Arquivo \"%s\" foi removido do ambiente virtual \"%s\" com "
139 "sucesso!" 142 "sucesso!"
140 143
  144 +#~ msgid "File not supported."
  145 +#~ msgstr "Arquivo não suportado."
  146 +
141 #~ msgid "Close" 147 #~ msgid "Close"
142 #~ msgstr "Fechar" 148 #~ msgstr "Fechar"
143 149
file_link/models.py
@@ -17,10 +17,10 @@ def validate_file_extension(value): @@ -17,10 +17,10 @@ def validate_file_extension(value):
17 'application/vnd.oasis.opendocument.spreadsheet','application/vnd.oasis.opendocument.text', 17 'application/vnd.oasis.opendocument.spreadsheet','application/vnd.oasis.opendocument.text',
18 'application/pdf' 18 'application/pdf'
19 ] 19 ]
20 - 20 +
21 if hasattr(value.file, 'content_type'): 21 if hasattr(value.file, 'content_type'):
22 if not value.file.content_type in valid_formats: 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 class FileLink(Resource): 25 class FileLink(Resource):
26 file_content = models.FileField(_('File'), blank = True, upload_to = 'files/', validators = [validate_file_extension]) 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,12 +25,12 @@
25 {% else %} 25 {% else %}
26 <label for="{{ field.auto_id }}">{{ field.label }}</label> 26 <label for="{{ field.auto_id }}">{{ field.label }}</label>
27 {% endif %} 27 {% endif %}
28 - 28 +
29 <br clear="all" /> 29 <br clear="all" />
30 30
31 {% for radio in field %} 31 {% for radio in field %}
32 <label for="{{ radio.id_for_label }}" class="row text-center"> 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 <span class="radio"> 34 <span class="radio">
35 {{ radio }} 35 {{ radio }}
36 </span> 36 </span>
@@ -75,4 +75,4 @@ @@ -75,4 +75,4 @@
75 </div> 75 </div>
76 <br clear="all" /> 76 <br clear="all" />
77 <br clear="all" /> 77 <br clear="all" />
78 -{% endblock %}  
79 \ No newline at end of file 78 \ No newline at end of file
  79 +{% endblock %}
topics/locale/pt_BR/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid &quot;&quot; @@ -8,7 +8,7 @@ msgid &quot;&quot;
8 msgstr "" 8 msgstr ""
9 "Project-Id-Version: PACKAGE VERSION\n" 9 "Project-Id-Version: PACKAGE VERSION\n"
10 "Report-Msgid-Bugs-To: \n" 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 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 12 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14 "Language-Team: LANGUAGE <LL@li.org>\n" 14 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,189 +18,194 @@ msgstr &quot;&quot; @@ -18,189 +18,194 @@ msgstr &quot;&quot;
18 "Content-Transfer-Encoding: 8bit\n" 18 "Content-Transfer-Encoding: 8bit\n"
19 "Plural-Forms: nplurals=2; plural=(n > 1);\n" 19 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
20 20
21 -#: topics/forms.py:28 21 +#: .\forms.py:28
22 msgid "This subject already has a repository" 22 msgid "This subject already has a repository"
23 msgstr "Esse assunto já possui um repositório" 23 msgstr "Esse assunto já possui um repositório"
24 24
25 -#: topics/forms.py:30 25 +#: .\forms.py:30
26 msgid "This subject already has a topic with this name" 26 msgid "This subject already has a topic with this name"
27 msgstr "Esse assunto já possui um tópico com esse nome" 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 msgid "Name" 30 msgid "Name"
31 msgstr "Nome" 31 msgstr "Nome"
32 32
33 -#: topics/models.py:13 topics/models.py:52 33 +#: .\models.py:13 .\models.py:52
34 msgid "Slug" 34 msgid "Slug"
35 msgstr "Slug" 35 msgstr "Slug"
36 36
37 -#: topics/models.py:14 37 +#: .\models.py:14
38 msgid "Description" 38 msgid "Description"
39 msgstr "Descrição" 39 msgstr "Descrição"
40 40
41 -#: topics/models.py:15 41 +#: .\models.py:15
42 msgid "Repository" 42 msgid "Repository"
43 msgstr "Repositório" 43 msgstr "Repositório"
44 44
45 -#: topics/models.py:16 topics/models.py:56 45 +#: .\models.py:16 .\models.py:56
46 msgid "Visible" 46 msgid "Visible"
47 msgstr "Visível" 47 msgstr "Visível"
48 48
49 -#: topics/models.py:17 49 +#: .\models.py:17
50 msgid "Subject" 50 msgid "Subject"
51 msgstr "Assunto" 51 msgstr "Assunto"
52 52
53 -#: topics/models.py:18 topics/models.py:57 53 +#: .\models.py:18 .\models.py:57
54 msgid "Order" 54 msgid "Order"
55 msgstr "Ordem" 55 msgstr "Ordem"
56 56
57 -#: topics/models.py:19 topics/models.py:62 57 +#: .\models.py:19 .\models.py:62
58 msgid "Create Date" 58 msgid "Create Date"
59 msgstr "Data de criação" 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 msgid "Last Update" 62 msgid "Last Update"
63 msgstr "Última Atualização" 63 msgstr "Última Atualização"
64 64
65 -#: topics/models.py:23 topics/models.py:58 65 +#: .\models.py:23 .\models.py:58
66 msgid "Topic" 66 msgid "Topic"
67 msgstr "Tópico" 67 msgstr "Tópico"
68 68
69 -#: topics/models.py:24 69 +#: .\models.py:24
70 msgid "Topics" 70 msgid "Topics"
71 msgstr "Tópicos" 71 msgstr "Tópicos"
72 72
73 -#: topics/models.py:53 73 +#: .\models.py:53
74 msgid "Brief Description" 74 msgid "Brief Description"
75 msgstr "Descrição Breve" 75 msgstr "Descrição Breve"
76 76
77 -#: topics/models.py:54 77 +#: .\models.py:54
78 msgid "Show in new window" 78 msgid "Show in new window"
79 msgstr "Exibir em nova janela" 79 msgstr "Exibir em nova janela"
80 80
81 -#: topics/models.py:55 81 +#: .\models.py:55
82 msgid "All Students" 82 msgid "All Students"
83 msgstr "Todos os estudantes habilitados para acessar o recurso" 83 msgstr "Todos os estudantes habilitados para acessar o recurso"
84 84
85 -#: topics/models.py:59 85 +#: .\models.py:59
86 msgid "Students" 86 msgid "Students"
87 msgstr "Estudantes" 87 msgstr "Estudantes"
88 88
89 -#: topics/models.py:60 89 +#: .\models.py:60
90 msgid "Groups" 90 msgid "Groups"
91 msgstr "Grupos de Estudo" 91 msgstr "Grupos de Estudo"
92 92
93 -#: topics/models.py:61 93 +#: .\models.py:61
94 msgid "Markers" 94 msgid "Markers"
95 msgstr "Marcadores" 95 msgstr "Marcadores"
96 96
97 -#: topics/models.py:66 97 +#: .\models.py:66
98 msgid "Resource" 98 msgid "Resource"
99 msgstr "Recurso" 99 msgstr "Recurso"
100 100
101 -#: topics/models.py:67 101 +#: .\models.py:67
102 msgid "Resources" 102 msgid "Resources"
103 msgstr "Recursos" 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 msgid "Close" 106 msgid "Close"
108 msgstr "Fechar" 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 msgid "Delete" 110 msgid "Delete"
113 msgstr "Deletar" 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 msgid "Edit" 114 msgid "Edit"
117 msgstr "Editar" 115 msgstr "Editar"
118 116
119 -#: topics/templates/resources/list.html:33 117 +#: .\templates\resources\list.html:33
120 msgid "Reports" 118 msgid "Reports"
121 msgstr "Relatórios" 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 msgid "Remove" 122 msgid "Remove"
125 msgstr "Remover" 123 msgstr "Remover"
126 124
127 -#: topics/templates/topics/_form.html:21 125 +#: .\templates\topics\_form.html:21
128 msgid "Only one topic per subject can be a repository" 126 msgid "Only one topic per subject can be a repository"
129 msgstr "Apenas um tópico por asssunto pode ser um repositório" 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 msgid "Save" 130 msgid "Save"
133 msgstr "Salvar" 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 msgid "Create Topic" 134 msgid "Create Topic"
137 msgstr "Criar Tópico" 135 msgstr "Criar Tópico"
138 136
139 -#: topics/templates/topics/delete.html:9 137 +#: .\templates\topics\delete.html:9
140 msgid "Are you sure you want delete the topic" 138 msgid "Are you sure you want delete the topic"
141 msgstr "Tem certeza que deseja deletar o tópico" 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 msgid "All data will be lost and havent how recover it." 142 msgid "All data will be lost and havent how recover it."
145 msgstr "Todas as informações serão perdidas e não poderão ser recuperadas." 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 msgid "Add Resource" 146 msgid "Add Resource"
149 msgstr "Adicionar Recurso" 147 msgstr "Adicionar Recurso"
150 148
151 -#: topics/templates/topics/list.html:55 149 +#: .\templates\topics\list.html:55
152 msgid "PDF File" 150 msgid "PDF File"
153 msgstr "Arquivo PDF" 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 msgid "Forum" 158 msgid "Forum"
161 msgstr "Fórum" 159 msgstr "Fórum"
162 160
163 -#: topics/templates/topics/list.html:58 161 +#: .\templates\topics\list.html:58
164 msgid "File Link" 162 msgid "File Link"
165 msgstr "Link para arquivo" 163 msgstr "Link para arquivo"
166 164
167 -#: topics/templates/topics/list.html:59 165 +#: .\templates\topics\list.html:59
168 msgid "Link to Website" 166 msgid "Link to Website"
169 msgstr "Link para Site" 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 msgid "Topic Goals" 170 msgid "Topic Goals"
177 msgstr "Metas do Tópico" 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 msgid "Questionary" 178 msgid "Questionary"
181 msgstr "Questionário" 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 msgid "Update Topic" 186 msgid "Update Topic"
185 msgstr "Atualizar Tópico" 187 msgstr "Atualizar Tópico"
186 188
187 -#: topics/views.py:95 189 +#: .\views.py:95
188 #, python-format 190 #, python-format
189 msgid "Topic \"%s\" was created on virtual enviroment \"%s\" successfully!" 191 msgid "Topic \"%s\" was created on virtual enviroment \"%s\" successfully!"
190 msgstr "Tópico \"%s\" foi criado no ambiente virtual \"%s\" com sucesso!" 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 #, python-format 195 #, python-format
194 msgid "Topic \"%s\" was updated on virtual enviroment \"%s\" successfully!" 196 msgid "Topic \"%s\" was updated on virtual enviroment \"%s\" successfully!"
195 msgstr "Tópico \"%s\" foi atualizado no ambiente virtual \"%s\" com sucesso!" 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 msgid "Could not remove this topic. It has one or more resources attached." 200 msgid "Could not remove this topic. It has one or more resources attached."
199 msgstr "" 201 msgstr ""
200 "Não é possível remover esse tópico. Ele possui um ou mais recursos " 202 "Não é possível remover esse tópico. Ele possui um ou mais recursos "
201 "vinculados." 203 "vinculados."
202 204
203 -#: topics/views.py:202 205 +#: .\views.py:202
204 #, python-format 206 #, python-format
205 msgid "Topic \"%s\" was removed from virtual enviroment \"%s\" successfully!" 207 msgid "Topic \"%s\" was removed from virtual enviroment \"%s\" successfully!"
206 msgstr "Tópico \"%s\" foi removido do ambiente virtual \"%s\" com sucesso!" 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,7 +53,7 @@
53 </button> 53 </button>
54 <ul class="dropdown-menu"> 54 <ul class="dropdown-menu">
55 <li><a href="{% url 'pdf_files:create' topic.slug %}"><i class="fa fa-file-pdf-o"></i> {% trans "PDF File" %}</a></li> 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 <li><a href="#"><i class="fa fa-comments-o"></i> {% trans 'Forum' %}</a></li> 57 <li><a href="#"><i class="fa fa-comments-o"></i> {% trans 'Forum' %}</a></li>
58 <li><a href="{% url 'file_links:create' topic.slug %}"><i class="fa fa-file-archive-o"></i> {% trans 'File Link' %}</a></li> 58 <li><a href="{% url 'file_links:create' topic.slug %}"><i class="fa fa-file-archive-o"></i> {% trans 'File Link' %}</a></li>
59 <li><a href="{% url 'links:create' topic.slug %}" > <i class="fa fa-globe"></i> {% trans "Link to Website" %}</a> 59 <li><a href="{% url 'links:create' topic.slug %}" > <i class="fa fa-globe"></i> {% trans "Link to Website" %}</a>