Commit 43fbc10d56eba97ef79df9aa7a44c7f55bcda878

Authored by fbormann
2 parents 4f16a4b0 54c3e1be

merging pull request on my local with migrations modifications

amadeus/staticfiles/nothing.d41d8cd98f00.txt.py 0 → 100644
amadeus/staticfiles/nothing.txt.py 0 → 100644
amadeus/staticfiles/sample.c7b009bae842.txt.py 0 → 100644
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 +XXXX XXXX XXX XXXXXXX XX XXXX XXXXXXXX XX XXXXXXX
0 \ No newline at end of file 2 \ No newline at end of file
amadeus/staticfiles/sample.txt.py 0 → 100644
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 +XXXX XXXX XXX XXXXXXX XX XXXX XXXXXXXX XX XXXXXXX
0 \ No newline at end of file 2 \ No newline at end of file
app/locale/pt_BR/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid "" @@ -8,7 +8,7 @@ msgid ""
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: 2016-10-26 14:47-0300\n" 11 +"POT-Creation-Date: 2016-11-16 11:52-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,134 +18,239 @@ msgstr &quot;&quot; @@ -18,134 +18,239 @@ 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 -#: app/templates/home.html:69 app/templates/home_professor.html:20  
22 -#: app/templates/home_student.html:21 21 +#: .\forms.py:16
  22 +msgid "A host name. Example: smtp.gmail.com"
  23 +msgstr "O nome do host. Exemplo: smtp.gmail.com"
  24 +
  25 +#: .\forms.py:17
  26 +msgid "A port number"
  27 +msgstr "O Número da porta"
  28 +
  29 +#: .\forms.py:18
  30 +msgid "Your host username"
  31 +msgstr ""
  32 +
  33 +#: .\forms.py:19
  34 +msgid "Your host password"
  35 +msgstr "A senha do seu host"
  36 +
  37 +#: .\models.py:8
  38 +msgid "No"
  39 +msgstr "Não"
  40 +
  41 +#: .\models.py:9
  42 +msgid "TLS, if available"
  43 +msgstr "TLS, se disponível"
  44 +
  45 +#: .\models.py:14
  46 +msgid "Description"
  47 +msgstr "Descrição"
  48 +
  49 +#: .\models.py:15
  50 +msgid "E-mail Host"
  51 +msgstr "E-mail do Host"
  52 +
  53 +#: .\models.py:16
  54 +msgid "Email Port"
  55 +msgstr "Porta do E-mail"
  56 +
  57 +#: .\models.py:17
  58 +msgid "Email host username"
  59 +msgstr "Nome de usuário do E-mail do Host"
  60 +
  61 +#: .\models.py:18
  62 +msgid "Email host password"
  63 +msgstr "Senha de E-mail do Host"
  64 +
  65 +#: .\models.py:19
  66 +msgid "Use safe conection"
  67 +msgstr "Use uma conexão segura"
  68 +
  69 +#: .\models.py:20
  70 +msgid "Default from email"
  71 +msgstr "Padrão do E-mail"
  72 +
  73 +#: .\models.py:23
  74 +msgid "Amadeus SMTP setting"
  75 +msgstr "Configuração SMTP do Amadeus"
  76 +
  77 +#: .\models.py:24
  78 +msgid "Amadeus SMTP settings"
  79 +msgstr "Configurações SMTP do Amadeus"
  80 +
  81 +#: .\templates\admin_settings.html:23 .\templates\admin_settings.html:29
  82 +msgid "System"
  83 +msgstr "Sistema"
  84 +
  85 +#: .\templates\admin_settings.html:26 .\templates\admin_settings.html:31
  86 +msgid "Mail Sender"
  87 +msgstr "Remetente do E-mail"
  88 +
  89 +#: .\templates\admin_settings.html:35
  90 +msgid "Security"
  91 +msgstr "Segurança"
  92 +
  93 +#: .\templates\admin_settings.html:49
  94 +msgid "General"
  95 +msgstr "Geral"
  96 +
  97 +#: .\templates\admin_settings.html:71
  98 +msgid "Outgoing Server (SMTP)"
  99 +msgstr "Servidor de saída (SMTP)"
  100 +
  101 +#: .\templates\admin_settings.html:74 .\templates\home.html:100
  102 +msgid "Settings"
  103 +msgstr "Configurações"
  104 +
  105 +#: .\templates\admin_settings.html:126
  106 +msgid "Default:"
  107 +msgstr "Padrão:"
  108 +
  109 +#: .\templates\admin_settings.html:147
  110 +msgid "Security and authentication"
  111 +msgstr "Segurança e autenticação"
  112 +
  113 +#: .\templates\admin_settings.html:246 .\templates\admin_settings.html:263
  114 +msgid "Save changes"
  115 +msgstr "Salvar mudanças"
  116 +
  117 +#: .\templates\admin_settings.html:260
  118 +msgid "Allow users self-enroll."
  119 +msgstr "Permitir que os usuários possam se inscrever"
  120 +
  121 +#: .\templates\home.html:77
23 msgid "Menu" 122 msgid "Menu"
24 msgstr "Menu" 123 msgstr "Menu"
25 124
26 -#: app/templates/home.html:73  
27 -msgid "Home"  
28 -msgstr "Início"  
29 -  
30 -#: app/templates/home.html:74 app/templates/home_student.html:25  
31 -msgid "Profile"  
32 -msgstr "Perfil" 125 +#: .\templates\home.html:82 .\templates\home.html:109
  126 +#: .\templates\home_professor.html:22
  127 +msgid "Courses"
  128 +msgstr "Cursos"
33 129
34 -#: app/templates/home.html:76  
35 -#, fuzzy  
36 -#| msgid "My Courses"  
37 -msgid "My courses" 130 +#: .\templates\home.html:85
  131 +msgid "My Courses"
38 msgstr "Meus Cursos" 132 msgstr "Meus Cursos"
39 133
40 -#: app/templates/home.html:78 app/templates/home_student.html:27  
41 -#, fuzzy  
42 -#| msgid "Courses" 134 +#: .\templates\home.html:86
43 msgid "All Courses" 135 msgid "All Courses"
44 -msgstr "Cursos" 136 +msgstr "Todos Cursos"
45 137
46 -#: app/templates/home.html:80 138 +#: .\templates\home.html:88
  139 +msgid "List Category"
  140 +msgstr "Listar Categorias"
  141 +
  142 +#: .\templates\home.html:89
  143 +msgid "Create Course"
  144 +msgstr "Criar Curso"
  145 +
  146 +#: .\templates\home.html:90
47 #, fuzzy 147 #, fuzzy
48 -#| msgid "Manage Course"  
49 -msgid "Manage Users"  
50 -msgstr "Gerenciar Usuários" 148 +#| msgid "Create Course"
  149 +msgid "Create Category"
  150 +msgstr "Criar Curso"
51 151
52 -#: app/templates/home.html:84 152 +#: .\templates\home.html:99
53 #, fuzzy 153 #, fuzzy
54 #| msgid "Manage Course" 154 #| msgid "Manage Course"
55 -msgid "Manage Courses"  
56 -msgstr "Gerenciar Cursos"  
57 -  
58 -#: app/templates/home.html:101 app/templates/home_professor.html:34  
59 -msgid "Courses"  
60 -msgstr "Cursos" 155 +msgid "Manage Users"
  156 +msgstr "Gerenciar Usuários"
61 157
62 -#: app/templates/home_admin_content.html:10 158 +#: .\templates\home_admin_content.html:10
63 #, fuzzy 159 #, fuzzy
64 #| msgid "Students:" 160 #| msgid "Students:"
65 msgid "Students" 161 msgid "Students"
66 msgstr "Alunos" 162 msgstr "Alunos"
67 163
68 -#: app/templates/home_admin_content.html:11 164 +#: .\templates\home_admin_content.html:11
69 #, fuzzy 165 #, fuzzy
70 #| msgid "Beginning:" 166 #| msgid "Beginning:"
71 msgid "Beginning" 167 msgid "Beginning"
72 -msgstr "Começo" 168 +msgstr "Início"
73 169
74 -#: app/templates/home_admin_content.html:12 170 +#: .\templates\home_admin_content.html:12
75 #, fuzzy 171 #, fuzzy
76 #| msgid "End:" 172 #| msgid "End:"
77 msgid "End" 173 msgid "End"
78 msgstr "Fim:" 174 msgstr "Fim:"
79 175
80 -#: app/templates/home_admin_content.html:15 176 +#: .\templates\home_admin_content.html:15
81 msgid "Edit" 177 msgid "Edit"
82 msgstr "Editar" 178 msgstr "Editar"
83 179
84 -#: app/templates/home_professor.html:24  
85 -msgid "Pending tasks"  
86 -msgstr "Tarefas Pendentes"  
87 -  
88 -#: app/templates/home_professor.html:25  
89 -msgid "Create Course"  
90 -msgstr "Criar Curso"  
91 -  
92 -#: app/templates/home_professor.html:26  
93 -msgid "Manage Course"  
94 -msgstr "Gerenciar Curso"  
95 -  
96 -#: app/templates/home_professor.html:44 180 +#: .\templates\home_professor.html:32
97 msgid "Students:" 181 msgid "Students:"
98 msgstr "Alunos" 182 msgstr "Alunos"
99 183
100 -#: app/templates/home_professor.html:45 184 +#: .\templates\home_professor.html:33
101 msgid "Beginning:" 185 msgid "Beginning:"
102 -msgstr "Começo" 186 +msgstr "Início"
103 187
104 -#: app/templates/home_professor.html:46 188 +#: .\templates\home_professor.html:34
105 msgid "End:" 189 msgid "End:"
106 msgstr "Fim:" 190 msgstr "Fim:"
107 191
108 -#: app/templates/home_professor.html:53 192 +#: .\templates\home_professor.html:41
109 msgid "You didn't create any course yet." 193 msgid "You didn't create any course yet."
110 msgstr "Você não criou nenhum curso ainda." 194 msgstr "Você não criou nenhum curso ainda."
111 195
112 -#: app/templates/home_student.html:26  
113 -msgid "My Courses"  
114 -msgstr "Meus Cursos"  
115 -  
116 -#: app/templates/home_student.html:28  
117 -msgid "Google accounts"  
118 -msgstr "Contas do Google"  
119 -  
120 -#: app/templates/home_student.html:35 196 +#: .\templates\home_student.html:22
121 msgid "Notifications" 197 msgid "Notifications"
122 msgstr "Notificações" 198 msgstr "Notificações"
123 199
124 -#: app/templates/home_student.html:48 200 +#: .\templates\home_student.html:35
125 msgid "His course has notified a new activity!" 201 msgid "His course has notified a new activity!"
126 msgstr "Seu curso tem uma nova atividade!" 202 msgstr "Seu curso tem uma nova atividade!"
127 203
128 -#: app/templates/home_student.html:51 app/templates/home_student.html:59  
129 -#: app/templates/home_student.html:67 204 +#: .\templates\home_student.html:38 .\templates\home_student.html:46
  205 +#: .\templates\home_student.html:54
130 msgid "Go" 206 msgid "Go"
131 msgstr "Ir" 207 msgstr "Ir"
132 208
133 -#: app/templates/home_student.html:56 209 +#: .\templates\home_student.html:43
134 msgid "His teacher has notified a new material!" 210 msgid "His teacher has notified a new material!"
135 msgstr "Seu professor adicionou um novo material!" 211 msgstr "Seu professor adicionou um novo material!"
136 212
137 -#: app/templates/home_student.html:64 213 +#: .\templates\home_student.html:51
138 msgid "You have a new guardian!" 214 msgid "You have a new guardian!"
139 msgstr "Você tem um novo tutor!" 215 msgstr "Você tem um novo tutor!"
140 216
141 -#: app/templates/home_teacher_student_content.html:14 217 +#: .\templates\home_teacher_student_content.html:14
142 msgid "at" 218 msgid "at"
143 msgstr "em" 219 msgstr "em"
144 220
145 -#: app/templates/home_teacher_student_content.html:15 221 +#: .\templates\home_teacher_student_content.html:15
146 msgid "ago" 222 msgid "ago"
147 msgstr "atrás" 223 msgstr "atrás"
148 224
  225 +#: .\views.py:72
  226 +msgid "Changes saved."
  227 +msgstr "Mudanças salvas"
  228 +
  229 +#, fuzzy
  230 +#~| msgid "My Courses"
  231 +#~ msgid "My courses"
  232 +#~ msgstr "Meus Cursos"
  233 +
  234 +#~ msgid "Home"
  235 +#~ msgstr "Início"
  236 +
  237 +#~ msgid "Profile"
  238 +#~ msgstr "Perfil"
  239 +
  240 +#, fuzzy
  241 +#~| msgid "Manage Course"
  242 +#~ msgid "Manage Courses"
  243 +#~ msgstr "Gerenciar Cursos"
  244 +
  245 +#~ msgid "Pending tasks"
  246 +#~ msgstr "Tarefas Pendentes"
  247 +
  248 +#~ msgid "Manage Course"
  249 +#~ msgstr "Gerenciar Curso"
  250 +
  251 +#~ msgid "Google accounts"
  252 +#~ msgstr "Contas do Google"
  253 +
149 #~ msgid "The Project" 254 #~ msgid "The Project"
150 #~ msgstr "O projeto" 255 #~ msgstr "O projeto"
151 256
@@ -160,9 +265,6 @@ msgstr &quot;atrás&quot; @@ -160,9 +265,6 @@ msgstr &quot;atrás&quot;
160 #~ msgid "See Profile" 265 #~ msgid "See Profile"
161 #~ msgstr "Perfil" 266 #~ msgstr "Perfil"
162 267
163 -#~ msgid "Settings"  
164 -#~ msgstr "Configurações"  
165 -  
166 #~ msgid "Logout" 268 #~ msgid "Logout"
167 #~ msgstr "Sair" 269 #~ msgstr "Sair"
168 270
app/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 # Generated by Django 1.10 on 2016-11-16 20:53 2 # Generated by Django 1.10 on 2016-11-16 20:53
  3 +
3 from __future__ import unicode_literals 4 from __future__ import unicode_literals
4 5
5 from django.db import migrations, models 6 from django.db import migrations, models
app/templates/home.html
@@ -82,8 +82,8 @@ @@ -82,8 +82,8 @@
82 <a href="#menu_courses" class="accordion" data-toggle="collapse">{% trans 'Courses' %}<span class="pull-right glyphicon glyphicon-chevron-down"></span></a> 82 <a href="#menu_courses" class="accordion" data-toggle="collapse">{% trans 'Courses' %}<span class="pull-right glyphicon glyphicon-chevron-down"></span></a>
83 <div id="menu_courses" class="collapse"> 83 <div id="menu_courses" class="collapse">
84 <ul class="nav nav-pill nav-stacked accordion_list"> 84 <ul class="nav nav-pill nav-stacked accordion_list">
85 - <li><a href="{% url 'course:manage' %}">{% trans 'My courses' %}</a></li>  
86 - <li><a href="{% url 'course:all_courses' %}">{% trans 'All Courses' %}</a></li> 85 + <li><a href="{% url 'course:manage' %}"> {% trans 'My Courses' %} </a></li>
  86 + <li><a href="{% url 'course:all_courses' %}"> {% trans 'All Courses' %} </a></li>
87 {% if user|has_role:'system_admin' or user|has_role:'professor'%} 87 {% if user|has_role:'system_admin' or user|has_role:'professor'%}
88 <li><a href="{% url 'course:manage_cat' %}">{% trans 'List Category' %}</a></li> 88 <li><a href="{% url 'course:manage_cat' %}">{% trans 'List Category' %}</a></li>
89 <li><a href="{% url 'course:create' %}">{% trans 'Create Course' %}</a></li> 89 <li><a href="{% url 'course:create' %}">{% trans 'Create Course' %}</a></li>
core/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
  2 +
2 # Generated by Django 1.10 on 2016-11-16 20:53 3 # Generated by Django 1.10 on 2016-11-16 20:53
  4 +
3 from __future__ import unicode_literals 5 from __future__ import unicode_literals
4 6
5 import autoslug.fields 7 import autoslug.fields
courses/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 # Generated by Django 1.10 on 2016-11-16 20:52 2 # Generated by Django 1.10 on 2016-11-16 20:52
  3 +
3 from __future__ import unicode_literals 4 from __future__ import unicode_literals
4 5
5 import autoslug.fields 6 import autoslug.fields
courses/templates/subject/form_view_teacher.html
@@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
21 {% professor_subject topic.subject user as dropdown_topic %} 21 {% professor_subject topic.subject user as dropdown_topic %}
22 {% if dropdown_topic %} 22 {% if dropdown_topic %}
23 <ul class="dropdown-menu pull-right" aria-labelledby="moreActions"> 23 <ul class="dropdown-menu pull-right" aria-labelledby="moreActions">
24 - <li><a href="" data-toggle="modal" data-target="#myModal4"><i class="fa fa-files-o fa-fw" aria-hidden="true"></i>&nbsp; {% trans "Replicate" %}</a></li> 24 + <li><a href="{% url 'course:replicate_topic' topic.slug %}"><i class="fa fa-files-o fa-fw" aria-hidden="true"></i>&nbsp; {% trans "Replicate" %}</a></li>
25 <li><a href="javascript:show_editation('{{topic.slug}}')"><i class="fa fa-pencil fa-fw" aria-hidden="true"></i>&nbsp; {% trans "Edit" %}</a></li> 25 <li><a href="javascript:show_editation('{{topic.slug}}')"><i class="fa fa-pencil fa-fw" aria-hidden="true"></i>&nbsp; {% trans "Edit" %}</a></li>
26 <li><a href="javascript:void(0)" data-toggle="modal" data-target="#removeTopic"><i class="fa fa-trash fa-fw" aria-hidden="true"></i>&nbsp; {% trans "Remove" %}</a></li> 26 <li><a href="javascript:void(0)" data-toggle="modal" data-target="#removeTopic"><i class="fa fa-trash fa-fw" aria-hidden="true"></i>&nbsp; {% trans "Remove" %}</a></li>
27 </ul> 27 </ul>
courses/templates/subject/replicate.html
@@ -2,61 +2,51 @@ @@ -2,61 +2,51 @@
2 2
3 {% load static i18n permission_tags widget_tweaks %} 3 {% load static i18n permission_tags widget_tweaks %}
4 4
5 -{% block breadcrumbs %}  
6 - <ol class="breadcrumb">  
7 - <li><a href="{% url 'app:index' %}">{% trans 'Home' %}</a></li>  
8 - <li class="active">{% trans 'Replicate Subject' %}</li>  
9 - </ol>  
10 -{% endblock %}  
11 -  
12 {% block content %} 5 {% block content %}
13 -<div class="panel panel-default"> 6 +
  7 + <div class="panel panel-default">
14 <div class="panel-body"> 8 <div class="panel-body">
15 <form class="form-group " method="post" action=""> 9 <form class="form-group " method="post" action="">
16 {% csrf_token %} 10 {% csrf_token %}
17 11
18 <div class="form-group {% if subject.name.errors %} has-error{% endif %}"> 12 <div class="form-group {% if subject.name.errors %} has-error{% endif %}">
19 - <label for="{{ id_name }}" class="control-label label-static"> {% trans 'Name' %}</label>  
20 - <input class="form-control" id="id_name" maxlength="100" name="name" type="text" required="True" value="{{subject.name}}">  
21 - <span class="help-block">{% trans 'Subject name' %}</span> 13 + <label for="id_name" class="control-label label-static"> {% trans 'Name'%}</label>
  14 + <textarea class="form-control" id="id_name" maxlength="100" rows="1" name="name" placeholder="Name" type="text" required >{{subject.name}}</textarea>
22 15
  16 + <span class="help-block">{% trans 'Subject name'%}</span>
23 </div> 17 </div>
24 18
25 - <div class="form-group {% if subject.name.errors %} has-error{% endif %}">  
26 - <label for="{{ id_description }}" class="control-label label-static"> {% trans 'Description' %} </label>  
27 - <textarea class="form-control" id="id_description" name="description" type="text" required="">{{subject.description}}</textarea>  
28 - <span class="help-block">{% trans 'Subject Description' %}</span> 19 + <div class="form-group">
  20 + <label for="id_description" class="control-label label-static"> {% trans 'Description'%}</label>
  21 + <textarea class="form-control" id="id_description" name="description" placeholder="Description" type="text" >{{subject.description}}</textarea>
29 22
  23 + <span class="help-block">{% trans 'Subject description'%}</span>
30 </div> 24 </div>
31 25
32 - <div class="form-group {% if subject.name.errors %} has-error{% endif %}">  
33 - <label for="{{ id_init_date }}" class="control-label label-static"> {% trans 'Init date' %}</label>  
34 - <input type="text" class="form-control date-picker" name="{{field.name}}" value="{{field.value|date:'SHORT_DA E_FORMAT'}}" min="{{now|date:'SHORT_DATE_FORMAT'}}">  
35 - <span class="help-block">{% trans 'Subject init date' %}</span> 26 + <div class="form-group">
  27 + <label for="id_init_date" class="control-label label-static"> {% trans 'Init date'%}</label>
  28 + <input type="text" class="form-control date-picker" name="init_date" value="{{field.value|date:'SHORT_DATE_FORMAT'}}" min="{{now|date:'SHORT_DATE_FORMAT'}}">
36 29
  30 + <span class="help-block">{% trans 'Init date'%}</span>
37 </div> 31 </div>
38 32
39 - <div class="form-group {% if subject.name.errors %} has-error{% endif %}">  
40 - <label for="{{ id_end_date }}" class="control-label label-static"> {% trans 'End date' %}</label>  
41 - <input type="text" class="form-control date-picker" name="{{field.name}}" value="{{field.value|date:'SHORT_DA E_FORMAT'}}" min="{{now|date:'SHORT_DATE_FORMAT'}}">  
42 - <span class="help-block">{% trans 'Subject end date' %}</span>  
43 -  
44 - </div>  
45 - <div class="form-group {% if subject.name.errors %} has-error{% endif %}">  
46 - <label for="{{ id_visible }}" class="control-label label-static"> {% trans 'Visible?' %} </label>  
47 - <input type="checkbox" class="form-control" id="id_visible" name="visible" required="true"/>  
48 - <span class="help-block">{% trans 'Is it visible?' %}</span> 33 + <div class="form-group">
  34 + <label for="id_end_date" class="control-label label-static"> {% trans 'End date'%}</label>
  35 + <input type="text" class="form-control date-picker" name="end_date" value="{{field.value|date:'SHORT_DATE_FORMAT'}}" min="{{now|date:'SHORT_DATE_FORMAT'}}">
49 36
  37 + <span class="help-block">{% trans 'End date'%}</span>
50 </div> 38 </div>
51 39
  40 + <div class="form-group">
  41 + <label for="id_visible" class="control-label label-static"> {% trans 'Visible'%}</label>
  42 + <input class="form-control" id="id_visible" name="visible" type="checkbox"/>
52 43
  44 + <span class="help-block">{% trans 'Is it visible?'%}</span>
53 </div> 45 </div>
54 -  
55 <div class="col-lg-offset-4 col-lg-4"> 46 <div class="col-lg-offset-4 col-lg-4">
56 - <button type="submit" class="btn btn-raised btn-primary btn-lg btn-block">{% trans 'Replicate' %}</button> 47 + <button type="submite" class="btn btn-raised btn-primary btn-lg btn-block">{% trans 'Replicate' %}</button>
57 </div> 48 </div>
58 </form> 49 </form>
59 -  
60 </div> 50 </div>
61 </div> 51 </div>
62 52
@@ -70,4 +60,4 @@ @@ -70,4 +60,4 @@
70 $('#id_description').summernote({height: 300}); 60 $('#id_description').summernote({height: 300});
71 }); 61 });
72 </script> 62 </script>
73 -{% endblock %}  
74 \ No newline at end of file 63 \ No newline at end of file
  64 +{% endblock content %}
courses/templates/topic/replicate.html 0 → 100644
@@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
  1 +{% extends 'subject/index.html' %}
  2 +
  3 +{% load static i18n permission_tags widget_tweaks %}
  4 +
  5 +{% block content %}
  6 +
  7 + <div class="panel panel-default">
  8 + <div class="panel-body">
  9 + <form class="form-group " method="post" action="">
  10 + {% csrf_token %}
  11 +
  12 + <div class="form-group {% if topic.name.errors %} has-error{% endif %}">
  13 + <label for="id_name" class="control-label label-static"> {% trans 'Name'%}</label>
  14 + <textarea class="form-control" id="id_name" maxlength="100" rows="1" name="name" placeholder="Name" type="text" required >{{topic.name}}</textarea>
  15 +
  16 + <span class="help-block">{% trans 'Topic name'%}</span>
  17 + </div>
  18 + <div class="form-group {% if topic.description.errors %} has-error{% endif %}">
  19 + <label for="id_description" class="control-label label-static"> {% trans 'Description'%}</label>
  20 + <textarea class="form-control" id="id_description" name="description" placeholder="Description" type="text"> {{topic.description}}</textarea>
  21 +
  22 + <span class="help-block">{% trans 'Topic description'%}</span>
  23 + </div>
  24 +
  25 + <div class="col-lg-offset-4 col-lg-4">
  26 + <button type="submit" class="btn btn-raised btn-primary btn-lg btn-block">{% trans 'Create' %}</button>
  27 +
  28 + </div>
  29 + </form>
  30 + </div>
  31 + </div>
  32 +
  33 + <script type="text/javascript">
  34 + $(document).ready(function() {
  35 + $('#id_description').summernote({height: 300});
  36 + });
  37 + </script>
  38 +{% endblock content %}
courses/templates/topic/replicate_topic.html
@@ -1,38 +0,0 @@ @@ -1,38 +0,0 @@
1 -{% extends 'subject/index.html' %}  
2 -  
3 -{% load static i18n permission_tags widget_tweaks %}  
4 -  
5 -{% block content %}  
6 -  
7 - <div class="panel panel-default">  
8 - <div class="panel-body">  
9 - <form class="form-group " method="post" action="">  
10 - {% csrf_token %}  
11 -  
12 - <div class="form-group {% if topic.name.errors %} has-error{% endif %}">  
13 - <label for="id_name" class="control-label label-static"> {% trans 'Name'%}</label>  
14 - <input class="form-control" id="id_name" maxlength="100" name="name" placeholder="Name" type="text" value={{topic.name}} required />  
15 -  
16 - <span class="help-block">{% trans 'Topic name'%}</span>  
17 - </div>  
18 - <div class="form-group {% if topic.description.errors %} has-error{% endif %}">  
19 - <label for="id_description" class="control-label label-static"> {% trans 'Description'%}</label>  
20 - <textarea class="form-control" id="id_description" name="description" placeholder="Description" type="text"> {{topic.description}}</textarea>  
21 -  
22 - <span class="help-block">{% trans 'Topic description'%}</span>  
23 - </div>  
24 -  
25 - <div class="col-lg-offset-4 col-lg-4">  
26 - <button type="submit" class="btn btn-raised btn-primary btn-lg btn-block">{% trans 'Create' %}</button>  
27 -  
28 - </div>  
29 - </form>  
30 - </div>  
31 - </div>  
32 -  
33 - <script type="text/javascript">  
34 - $(document).ready(function() {  
35 - $('#id_description').summernote({height: 300});  
36 - });  
37 - </script>  
38 -{% endblock content %}  
courses/urls.py
@@ -6,7 +6,6 @@ urlpatterns = [ @@ -6,7 +6,6 @@ urlpatterns = [
6 url(r'^all-courses/$', views.AllCoursesView.as_view(), name='all_courses'), 6 url(r'^all-courses/$', views.AllCoursesView.as_view(), name='all_courses'),
7 url(r'^create/$', views.CreateCourseView.as_view(), name='create'), 7 url(r'^create/$', views.CreateCourseView.as_view(), name='create'),
8 url(r'^replicate_course/(?P<slug>[\w_-]+)/$', views.ReplicateCourseView.as_view(), name='replicate_course'), 8 url(r'^replicate_course/(?P<slug>[\w_-]+)/$', views.ReplicateCourseView.as_view(), name='replicate_course'),
9 - url(r'^replicate_subject/(?P<slug>[\w_-]+)/$', views.ReplicateSubjectView.as_view(), name='replicate_subject'),  
10 url(r'^edit/(?P<slug>[\w_-]+)/$', views.UpdateCourseView.as_view(), name='update'), 9 url(r'^edit/(?P<slug>[\w_-]+)/$', views.UpdateCourseView.as_view(), name='update'),
11 url(r'^delete/(?P<slug>[\w_-]+)/$', views.DeleteCourseView.as_view(), name='delete'), 10 url(r'^delete/(?P<slug>[\w_-]+)/$', views.DeleteCourseView.as_view(), name='delete'),
12 url(r'^subscribe/(?P<slug>[\w_-]+)/$', views.subscribe_course, name='subscribe'), 11 url(r'^subscribe/(?P<slug>[\w_-]+)/$', views.subscribe_course, name='subscribe'),
@@ -19,10 +18,11 @@ urlpatterns = [ @@ -19,10 +18,11 @@ urlpatterns = [
19 url(r'^subjects/create/(?P<slug>[\w_-]+)/$', views.CreateSubjectView.as_view(), name='create_subject'), 18 url(r'^subjects/create/(?P<slug>[\w_-]+)/$', views.CreateSubjectView.as_view(), name='create_subject'),
20 url(r'^subjects/update/(?P<slug>[\w_-]+)/$', views.UpdateSubjectView.as_view(), name='update_subject'), 19 url(r'^subjects/update/(?P<slug>[\w_-]+)/$', views.UpdateSubjectView.as_view(), name='update_subject'),
21 url(r'^subjects/delete/(?P<slug>[\w_-]+)/$', views.DeleteSubjectView.as_view(), name='delete_subject'), 20 url(r'^subjects/delete/(?P<slug>[\w_-]+)/$', views.DeleteSubjectView.as_view(), name='delete_subject'),
  21 + url(r'^subjects/replicate/(?P<slug>[\w_-]+)/$', views.ReplicateSubjectView.as_view(), name='replicate_subject'),
22 url(r'^subjects/subscribe/(?P<slug>[\w_-]+)/$', views.subscribe_subject, name='subscribe_subject'), 22 url(r'^subjects/subscribe/(?P<slug>[\w_-]+)/$', views.subscribe_subject, name='subscribe_subject'),
23 url(r'^topics/create/(?P<slug>[\w_-]+)/$', views.CreateTopicView.as_view(), name='create_topic'), 23 url(r'^topics/create/(?P<slug>[\w_-]+)/$', views.CreateTopicView.as_view(), name='create_topic'),
24 url(r'^topics/update/(?P<slug>[\w_-]+)/$', views.UpdateTopicView.as_view(), name='update_topic'), 24 url(r'^topics/update/(?P<slug>[\w_-]+)/$', views.UpdateTopicView.as_view(), name='update_topic'),
25 - url(r'^topics/update/(?P<slug>[\w_-]+)/$', views.DeleteTopic.as_view(), name='delete_topic'), 25 + url(r'^topics/delete/(?P<slug>[\w_-]+)/$', views.DeleteTopic.as_view(), name='delete_topic'),
26 url(r'^topics/replicate/(?P<slug>[\w_-]+)/$', views.ReplicateTopicView.as_view(), name='replicate_topic'), 26 url(r'^topics/replicate/(?P<slug>[\w_-]+)/$', views.ReplicateTopicView.as_view(), name='replicate_topic'),
27 url(r'^topics/(?P<slug>[\w_-]+)/$', views.TopicsView.as_view(), name='view_topic'), 27 url(r'^topics/(?P<slug>[\w_-]+)/$', views.TopicsView.as_view(), name='view_topic'),
28 url(r'^subjects/categories$',views.IndexSubjectCategoryView.as_view(), name='subject_category_index'), 28 url(r'^subjects/categories$',views.IndexSubjectCategoryView.as_view(), name='subject_category_index'),
courses/views.py
@@ -561,39 +561,6 @@ class SubjectsView(LoginRequiredMixin, LogMixin, generic.ListView): @@ -561,39 +561,6 @@ class SubjectsView(LoginRequiredMixin, LogMixin, generic.ListView):
561 context['files'] = TopicFile.objects.filter(students__name = self.request.user.name) 561 context['files'] = TopicFile.objects.filter(students__name = self.request.user.name)
562 return context 562 return context
563 563
564 -class ReplicateSubjectView(LoginRequiredMixin, HasRoleMixin, LogMixin, NotificationMixin,generic.edit.CreateView):  
565 -  
566 - allowed_roles = ['professor', 'system_admin']  
567 - login_url = reverse_lazy("core:home")  
568 - redirect_field_name = 'next'  
569 - template_name = 'subject/replicate.html'  
570 - form_class = SubjectForm  
571 - success_url = reverse_lazy('course:view')  
572 -  
573 - def get_context_data(self, **kwargs):  
574 - context = super(ReplicateSubjectView, self).get_context_data(**kwargs)  
575 - subject = get_object_or_404(Subject, slug=self.kwargs.get('slug'))  
576 -  
577 - if has_role(self.request.user,'system_admin'):  
578 - subjects = Subject.objects.all()  
579 - context['subjects'] = subjects  
580 - elif has_role(self.request.user,'professor'):  
581 - subject = self.request.user.professors_subjects.all()  
582 - categorys_subjects = CategorySubject.objects.all()  
583 -  
584 - context['subject'] = subject  
585 - context['categorys_subjects'] = categorys_subjects  
586 - context['title'] = _("Replicate Subject")  
587 - context['now'] = date.today()  
588 - return context  
589 -  
590 - def form_valid(self, form):  
591 - self.object = form.save()  
592 -  
593 - return super(ReplicateSubjectView, self).form_valid(form)  
594 -  
595 - def get_success_url(self):  
596 - return reverse_lazy('course:view', kwargs={'slug' : self.object.slug})  
597 564
598 class UploadMaterialView(LoginRequiredMixin, generic.edit.CreateView): 565 class UploadMaterialView(LoginRequiredMixin, generic.edit.CreateView):
599 login_url = reverse_lazy("core:home") 566 login_url = reverse_lazy("core:home")
@@ -1017,13 +984,13 @@ class TopicViewSet(viewsets.ModelViewSet): @@ -1017,13 +984,13 @@ class TopicViewSet(viewsets.ModelViewSet):
1017 class ReplicateTopicView (LoginRequiredMixin, HasRoleMixin, LogMixin, NotificationMixin,generic.edit.CreateView): 984 class ReplicateTopicView (LoginRequiredMixin, HasRoleMixin, LogMixin, NotificationMixin,generic.edit.CreateView):
1018 log_component = "course" 985 log_component = "course"
1019 log_resource = "topic" 986 log_resource = "topic"
1020 - log_action = "create" 987 + log_action = "replicate"
1021 log_context = {} 988 log_context = {}
1022 989
1023 allowed_roles = ['professor', 'system_admin'] 990 allowed_roles = ['professor', 'system_admin']
1024 login_url = reverse_lazy("core:home") 991 login_url = reverse_lazy("core:home")
1025 - model = Topic  
1026 - template_name = 'topic/replicate_topic.html' 992 + redirect_field_name = 'next'
  993 + template_name = 'topic/replicate.html'
1027 form_class = TopicForm 994 form_class = TopicForm
1028 995
1029 def get_success_url(self): 996 def get_success_url(self):
@@ -1032,21 +999,23 @@ class ReplicateTopicView (LoginRequiredMixin, HasRoleMixin, LogMixin, Notificati @@ -1032,21 +999,23 @@ class ReplicateTopicView (LoginRequiredMixin, HasRoleMixin, LogMixin, Notificati
1032 def get_context_data(self, **kwargs): 999 def get_context_data(self, **kwargs):
1033 context = super(ReplicateTopicView, self).get_context_data(**kwargs) 1000 context = super(ReplicateTopicView, self).get_context_data(**kwargs)
1034 topic = get_object_or_404(Topic, slug = self.kwargs.get('slug')) 1001 topic = get_object_or_404(Topic, slug = self.kwargs.get('slug'))
1035 - subject = topic.subject 1002 + subject = Subject.objects.get(pk = topic.subject_id)
1036 context['course'] = subject.course 1003 context['course'] = subject.course
1037 context['subject'] = subject 1004 context['subject'] = subject
1038 context['subjects'] = subject.course.subjects.all() 1005 context['subjects'] = subject.course.subjects.all()
1039 context['topic'] = topic 1006 context['topic'] = topic
1040 return context 1007 return context
1041 1008
1042 -  
1043 def form_valid(self, form): 1009 def form_valid(self, form):
1044 - self.object.subject = self.object.subject.id 1010 + topic = get_object_or_404(Topic, slug = self.kwargs.get('slug'))
  1011 + subject = Subject.objects.get(pk = topic.subject_id)
  1012 +
1045 self.object = form.save(commit = False) 1013 self.object = form.save(commit = False)
  1014 + self.object.topic = topic
  1015 + self.object.subject = subject
1046 self.object.owner = self.request.user 1016 self.object.owner = self.request.user
1047 self.object.save() 1017 self.object.save()
1048 -  
1049 - action = super(ReplicateTopicView, self).createorRetrieveAction("replicate Topic") 1018 + action = super(ReplicateTopicView, self).createorRetrieveAction("create Topic")
1050 super(ReplicateTopicView, self).createNotification("Topic "+ self.object.name + " was created", 1019 super(ReplicateTopicView, self).createNotification("Topic "+ self.object.name + " was created",
1051 resource_name=self.object.name, resource_link= reverse('course:view_topic',args=[self.object.slug]), 1020 resource_name=self.object.name, resource_link= reverse('course:view_topic',args=[self.object.slug]),
1052 actor=self.request.user, users = self.object.subject.course.students.all() ) 1021 actor=self.request.user, users = self.object.subject.course.students.all() )
@@ -1066,3 +1035,55 @@ class ReplicateTopicView (LoginRequiredMixin, HasRoleMixin, LogMixin, Notificati @@ -1066,3 +1035,55 @@ class ReplicateTopicView (LoginRequiredMixin, HasRoleMixin, LogMixin, Notificati
1066 super(ReplicateTopicView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context) 1035 super(ReplicateTopicView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context)
1067 1036
1068 return super(ReplicateTopicView, self).form_valid(form) 1037 return super(ReplicateTopicView, self).form_valid(form)
  1038 +
  1039 +class ReplicateSubjectView(LoginRequiredMixin, HasRoleMixin, LogMixin, NotificationMixin, generic.edit.CreateView):
  1040 + log_component = "course"
  1041 + log_resource = "subject"
  1042 + log_action = "replicate"
  1043 + log_context = {}
  1044 +
  1045 + allowed_roles = ['professor', 'system_admin']
  1046 + login_url = reverse_lazy("core:home")
  1047 + redirect_field_name = 'next'
  1048 + template_name = 'subject/replicate.html'
  1049 + form_class = SubjectForm
  1050 +
  1051 + def get_success_url(self):
  1052 + return reverse_lazy('course:view_subject', kwargs={'slug' : self.object.slug})
  1053 +
  1054 + def get_context_data(self, **kwargs):
  1055 + context = super(ReplicateSubjectView, self).get_context_data(**kwargs)
  1056 + subject = get_object_or_404(Subject, slug = self.kwargs.get('slug'))
  1057 + course = Course.objects.get(pk=subject.course_id)
  1058 + context['course'] = course
  1059 + context['subjects'] = course.subjects.filter(Q(visible=True) | Q(professors__in=[self.request.user]))
  1060 + context['subject'] = subject
  1061 + if (has_role(self.request.user,'system_admin')):
  1062 + context['subjects'] = course.subjects.all()
  1063 + return context
  1064 +
  1065 + def form_valid(self, form):
  1066 + subject = get_object_or_404(Subject, slug = self.kwargs.get('slug'))
  1067 + course = Course.objects.get(pk=subject.course_id)
  1068 +
  1069 + self.object = form.save(commit = False)
  1070 + self.object.course = course
  1071 + self.object.save()
  1072 + self.object.professors.add(self.request.user)
  1073 + if self.object.visible:
  1074 + super(ReplicateSubjectView, self).createNotification( " created subject " + self.object.name, resource_name=self.object.name,
  1075 + resource_slug = self.object.slug, actor=self.request.user, users= self.object.course.students.all(),
  1076 + resource_link = reverse('course:view_subject', args=[self.object.slug]))
  1077 +
  1078 + self.log_context['subject_id'] = self.object.id
  1079 + self.log_context['subject_name'] = self.object.name
  1080 + self.log_context['subject_slug'] = self.object.slug
  1081 + self.log_context['course_id'] = course.id
  1082 + self.log_context['course_name'] = course.name
  1083 + self.log_context['course_slug'] = course.slug
  1084 + self.log_context['course_category_id'] = course.category.id
  1085 + self.log_context['course_category_name'] = course.category.name
  1086 +
  1087 + super(ReplicateSubjectView, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context)
  1088 +
  1089 + return super(ReplicateSubjectView, self).form_valid(form)
exam/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
  2 +
2 # Generated by Django 1.10 on 2016-11-16 20:53 3 # Generated by Django 1.10 on 2016-11-16 20:53
  4 +
3 from __future__ import unicode_literals 5 from __future__ import unicode_literals
4 6
5 from django.conf import settings 7 from django.conf import settings
@@ -39,8 +41,8 @@ class Migration(migrations.Migration): @@ -39,8 +41,8 @@ class Migration(migrations.Migration):
39 ('answer', models.ManyToManyField(related_name='student_answer', to='exam.Answer', verbose_name='Answers Students')), 41 ('answer', models.ManyToManyField(related_name='student_answer', to='exam.Answer', verbose_name='Answers Students')),
40 ], 42 ],
41 options={ 43 options={
42 - 'verbose_name': 'Answer Stundent',  
43 'verbose_name_plural': 'Answers Student', 44 'verbose_name_plural': 'Answers Student',
  45 + 'verbose_name': 'Answer Stundent',
44 }, 46 },
45 ), 47 ),
46 migrations.CreateModel( 48 migrations.CreateModel(
@@ -51,8 +53,8 @@ class Migration(migrations.Migration): @@ -51,8 +53,8 @@ class Migration(migrations.Migration):
51 ('exibe', models.BooleanField(default=False, verbose_name='Exibe?')), 53 ('exibe', models.BooleanField(default=False, verbose_name='Exibe?')),
52 ], 54 ],
53 options={ 55 options={
54 - 'verbose_name': 'Exam',  
55 'verbose_name_plural': 'Exams', 56 'verbose_name_plural': 'Exams',
  57 + 'verbose_name': 'Exam',
56 }, 58 },
57 bases=('courses.activity',), 59 bases=('courses.activity',),
58 ), 60 ),
exercise/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 # Generated by Django 1.10 on 2016-11-16 20:53 2 # Generated by Django 1.10 on 2016-11-16 20:53
  3 +
3 from __future__ import unicode_literals 4 from __future__ import unicode_literals
4 5
5 from django.db import migrations, models 6 from django.db import migrations, models
exercise/templates/exercise/create_exercise.html.py 0 → 100644
@@ -0,0 +1,83 @@ @@ -0,0 +1,83 @@
  1 +BBBB BBBBBBBBBBBBB BBBB BBBBBB
  2 +XXXXXXXXX XXXXXX XXXXXXXXXXX
  3 +XXXX XXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  4 + XXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
  5 + XXXX XXXXXXXXXXXXXXXXXXXXXX
  6 + XXXX XXXXXXXXXXXXXXXXXXXXX
  7 + XXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  8 + XXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX gettext(u'Create a New Exercise') XXXXX
  9 + XXXXXX
  10 + XXXX XXXXXXXXXXXXXXXXXXX
  11 + XXXX XXXX XXX
  12 + XXXXX XXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  13 + BBBBBBBBBB
  14 + BB BBBBBBBB
  15 + BBB BBBBBBB BB BBBBBBBB
  16 + XXXX XXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX
  17 + XXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX
  18 + XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  19 + XXXXXXXXX
  20 + XXXXXXX
  21 + XXXXXX
  22 + BBBBBB
  23 + BBBBB
  24 + BBB BBBBB BB BBBB
  25 + XXXX XXXXX XXXXXXXXXXXXXX
  26 + BB BBBBBBBBBBBBBBBBBBBB
  27 + XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  28 + BBBBB
  29 + BBBBBBBBBBBB BBBBB BBBBBBBBBBBBBBBBBBB BBBBBBBBB
  30 + BB BBBBBBBBBBBB
  31 + XXXX XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXX
  32 + XXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX
  33 + XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  34 + XXXXXXXXX
  35 + XXXX
  36 + BBB BBBBB BB BBBBBBBBBBBB
  37 + XXXXXXXXX
  38 + BBBBBB
  39 + XXXXX
  40 + XXXXXX
  41 + BBBBB
  42 + XXXXXX
  43 + BBBBBB
  44 + XXXX XXXXXXXXXXXXXXXXXXX
  45 + XXXXXXX XXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXX gettext(u'Cancel') XXXXXXXXX
  46 + XXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXX gettext(u'Submit') XXXXXXXXX
  47 + XXXXXX
  48 + XXXX XXXX XXXX XXX
  49 + XXXXXX
  50 + XXXXXX
  51 + XXXXXX
  52 +XXXXXX
  53 +XXXX XXXXXXXX XXX
  54 +XXXXXXX XXXXXBBBBBB BBBBBBBBBBBBBBBBBXXXXXXXXXXX
  55 +XXXXXXX XXXXXXXXXXXXXXXXXXXXXXX
  56 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X
  57 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  58 + XXX XXXX X XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  59 + XXXXXXXX
  60 + XXXX XBBB BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBBBXX
  61 + XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  62 + XXXXX XXXXX
  63 + XXXXXX XXXXXX
  64 + XXXXXXXXXXXX XXXXXX
  65 + XXXXXXXXXXXX XXXXXX
  66 + XXXXXXXX XXXXXXXXXXXXXX X
  67 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  68 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  69 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  70 + XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXX
  71 + XX
  72 + XXXXXX XXXXXXXXXXXXXXX
  73 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  74 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  75 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  76 + XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXX X XXXXX XXXXXXX
  77 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  78 + XXXXXXXXXXXXXXXXXXX XX X XXXXXXXXXXXXXXXXXXX XX XXXXXX
  79 + X
  80 + XXX
  81 + XXXXXXXXXXXXXXXXXXXXXXX
  82 + XXX
  83 +XXXXXXXXX
exercise/templates/exercise/delete_exercise.html.py 0 → 100644
@@ -0,0 +1,66 @@ @@ -0,0 +1,66 @@
  1 +BBBB BBBBBB BBBBBBBBBBBBB BBBB
  2 +
  3 +XXXX XXXXX XXXXXX XXXX XXX
  4 +XXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX XXXXXXBBBBBB BBBBBBBBBBBBBBBBBBXX
  5 +
  6 +XXXX XXXXXXXXXXXXXXXXXXXX
  7 + XXXX XXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX XXXX
  8 + XXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
  9 + XXXX XXXXXXXXXXXXXXXXXXXXXX
  10 + XXXX XXXXXXXXXXXXXXXXXXXXX
  11 + XXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  12 + XXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX gettext(u'Delete Exercise') XXXXX
  13 + XXXXXX
  14 + XXXX XXXXXXXXXXXXXXXXXXX
  15 + XXXX XXXX XXX
  16 + XXXXX XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  17 + BBBBBBBBBB
  18 + XXXXXXXXXX
  19 + XXXX XXXXXXXXXXXXXXXXXX
  20 + gettext(u'Are you sure to delete the exercise ') XXXXXXXXXXXXXXXXXXX XXXX XX X
  21 + XXXXXX
  22 + XXXX XXXXXXXXXXXXXXXXXXX
  23 + XXXX XXXXXXXXXXXXXXXXXX
  24 + XXXXXXX XXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX gettext(u'Close') XXXXXXXXX
  25 + XXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXX gettext(u'Delete') XXXXXXXXX
  26 + XXXXXX
  27 + XXXXXX
  28 + XXXXXXXXXXX
  29 + XXXXXXX
  30 + XXXX XXXX XXXX XXX
  31 + XXXXXX
  32 + XXXXXX
  33 + XXXXXX
  34 + XXXXXX
  35 +XXXXXX
  36 + XXXXXXX XXXXXBBBBBB BBBBBBBBBBBBBBBBXXXXXXXXXXX
  37 + XXXXXXX XXXXXXXXXXXXXXXXXXXXXXX
  38 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X
  39 + XXX XXXX X XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  40 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  41 + XXXXXXXX
  42 + XXXX XBBB BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBBBBBBXX
  43 + XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  44 + XXXXX XXXXX
  45 + XXXXXX XXXXXX
  46 + XXXXXXXXXXXX XXXXXX
  47 + XXXXXXXXXXXX XXXXXX
  48 + XXXXXXXX XXXXXXXXXXXXXX X
  49 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  50 + XXXXXXXXXXXXXXXXXXXXXXXXX
  51 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  52 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  53 + XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXX
  54 + XX
  55 + XXXXXX XXXXXXXXXXXXXXX
  56 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  57 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  58 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  59 + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  60 + XXXXXXXXXXXXXXXXXXXXX XXXX XXXXXX XX XXXXXXXXXX
  61 + X
  62 + XXX
  63 + XXXXXXXXXXXXXXXXXXXXXXX
  64 + XXX
  65 + XXXXXXXXX
  66 +XXXX XXXXXXXX XXX
exercise/templates/exercise/exercise_edit.html.py 0 → 100644
@@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
  1 +BBBB BBBBBB BBBB BBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBB
  2 +XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  3 + BBB BBBBBBBB BB BBBBBBBBB
  4 + XXX XXXXXXXXXXXXXXXXXXXXXXXX XX X XXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  5 + XXX XX X XXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  6 + BBBBBB
  7 +XXXXXX
exercise/templates/exercise/exercise_list.html.py 0 → 100644
@@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
  1 +BBBB BBBBBB BBBB BBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBB
  2 +XXXX XXXXXXXXXXXXXXXXXXXXXXXXXX
  3 +BBB BBBBBBBB BB BBBBBBBBB
  4 + XXX XXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXX
  5 +BBBBBB
  6 +XXXXXX
files/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
  2 +
2 # Generated by Django 1.10 on 2016-11-16 20:54 3 # Generated by Django 1.10 on 2016-11-16 20:54
  4 +
3 from __future__ import unicode_literals 5 from __future__ import unicode_literals
4 6
5 from django.conf import settings 7 from django.conf import settings
@@ -16,6 +18,7 @@ class Migration(migrations.Migration): @@ -16,6 +18,7 @@ class Migration(migrations.Migration):
16 migrations.swappable_dependency(settings.AUTH_USER_MODEL), 18 migrations.swappable_dependency(settings.AUTH_USER_MODEL),
17 ('courses', '0001_initial'), 19 ('courses', '0001_initial'),
18 ('core', '0001_initial'), 20 ('core', '0001_initial'),
  21 + ('courses', '0001_initial'),
19 ] 22 ]
20 23
21 operations = [ 24 operations = [
forum/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
  2 +
2 # Generated by Django 1.10 on 2016-11-16 20:54 3 # Generated by Django 1.10 on 2016-11-16 20:54
  4 +
3 from __future__ import unicode_literals 5 from __future__ import unicode_literals
4 6
5 from django.conf import settings 7 from django.conf import settings
@@ -26,8 +28,8 @@ class Migration(migrations.Migration): @@ -26,8 +28,8 @@ class Migration(migrations.Migration):
26 ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Create Date')), 28 ('create_date', models.DateTimeField(auto_now_add=True, verbose_name='Create Date')),
27 ], 29 ],
28 options={ 30 options={
29 - 'verbose_name': 'Forum',  
30 'verbose_name_plural': 'Foruns', 31 'verbose_name_plural': 'Foruns',
  32 + 'verbose_name': 'Forum',
31 }, 33 },
32 bases=('courses.activity',), 34 bases=('courses.activity',),
33 ), 35 ),
@@ -42,8 +44,8 @@ class Migration(migrations.Migration): @@ -42,8 +44,8 @@ class Migration(migrations.Migration):
42 ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Autor')), 44 ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Autor')),
43 ], 45 ],
44 options={ 46 options={
45 - 'verbose_name': 'Post',  
46 'verbose_name_plural': 'Posts', 47 'verbose_name_plural': 'Posts',
  48 + 'verbose_name': 'Post',
47 }, 49 },
48 ), 50 ),
49 migrations.CreateModel( 51 migrations.CreateModel(
@@ -57,8 +59,8 @@ class Migration(migrations.Migration): @@ -57,8 +59,8 @@ class Migration(migrations.Migration):
57 ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Autor')), 59 ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Autor')),
58 ], 60 ],
59 options={ 61 options={
60 - 'verbose_name': 'Post Answer',  
61 'verbose_name_plural': 'Post Answers', 62 'verbose_name_plural': 'Post Answers',
  63 + 'verbose_name': 'Post Answer',
62 }, 64 },
63 ), 65 ),
64 ] 66 ]
links/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: 2016-10-27 23:54-0300\n" 11 +"POT-Creation-Date: 2016-11-16 13:43-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,46 +18,79 @@ msgstr &quot;&quot; @@ -18,46 +18,79 @@ 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 -#: .\forms.py:16 .\forms.py:22 21 +#: .\forms.py:14 .\forms.py:16 .\forms.py:29 .\forms.py:31
22 msgid "Invalid url!" 22 msgid "Invalid url!"
23 msgstr "Url inválida!" 23 msgstr "Url inválida!"
24 24
25 -#: .\templates\links\create_link.html:9 25 +#: .\models.py:8
  26 +msgid "Link_URL"
  27 +msgstr "URL"
  28 +
  29 +#: .\models.py:9
  30 +msgid "Description"
  31 +msgstr "Descrição"
  32 +
  33 +#: .\templates\links\create_link.html:8
26 msgid "Create a New Link" 34 msgid "Create a New Link"
27 msgstr "Criar um novo link" 35 msgstr "Criar um novo link"
28 36
29 -#: .\templates\links\create_link.html:46 .\templates\links\delete_link.html:15  
30 -#: .\templates\links\update_link.html:25 37 +#: .\templates\links\create_link.html:35 .\templates\links\update_link.html:39
31 msgid "Cancel" 38 msgid "Cancel"
32 msgstr "Cancelar" 39 msgstr "Cancelar"
33 40
34 -#: .\templates\links\delete_link.html:11  
35 -msgid "Do you really want to delete this link?"  
36 -msgstr "Você realmente deseja apagar este link?" 41 +#: .\templates\links\create_link.html:36 .\templates\links\update_link.html:40
  42 +msgid "Submit"
  43 +msgstr "Enviar"
37 44
38 -#: .\templates\links\delete_link.html:16  
39 -msgid "Confirm"  
40 -msgstr "Confirmar" 45 +#: .\templates\links\create_link.html:61
  46 +#, fuzzy
  47 +#| msgid "Link created successfully!"
  48 +msgid "Link successfully created!"
  49 +msgstr "Link criado com sucesso!"
41 50
42 -#: .\templates\links\update_link.html:8  
43 -msgid "Links"  
44 -msgstr "Links" 51 +#: .\templates\links\create_link.html:68 .\templates\links\update_link.html:73
  52 +msgid "Invalid link, insert a valid one!"
  53 +msgstr "Link inválido, insira um válido! "
45 54
46 -#: .\templates\links\update_link.html:13  
47 -msgid "Name"  
48 -msgstr "Nome" 55 +#: .\templates\links\delete_link.html:12
  56 +msgid "Delete Link"
  57 +msgstr "Apagar Link"
49 58
50 -#: .\templates\links\update_link.html:17  
51 -msgid "URL"  
52 -msgstr "URL" 59 +#: .\templates\links\delete_link.html:20
  60 +#, fuzzy
  61 +#| msgid "Do you really want to delete this link?"
  62 +msgid "Are you sure to delete the link "
  63 +msgstr "Você realmente deseja apagar o link "
53 64
54 -#: .\templates\links\update_link.html:21  
55 -msgid "Description"  
56 -msgstr "Descrição" 65 +#: .\templates\links\delete_link.html:24
  66 +msgid "Close"
  67 +msgstr "Fechar"
57 68
58 -#: .\templates\links\update_link.html:26  
59 -msgid "Submit"  
60 -msgstr "Enviar" 69 +#: .\templates\links\delete_link.html:25
  70 +msgid "Delete"
  71 +msgstr "Apagar"
  72 +
  73 +#: .\templates\links\delete_link.html:56
  74 +#, fuzzy
  75 +#| msgid "Link created successfully!"
  76 +msgid "Link successfully deleted!"
  77 +msgstr "Link criado com sucesso!"
  78 +
  79 +#: .\templates\links\delete_link.html:63
  80 +msgid "Error when trying to delete."
  81 +msgstr "Erro ao tentar apagar."
  82 +
  83 +#: .\templates\links\update_link.html:8
  84 +#, fuzzy
  85 +#| msgid "Link"
  86 +msgid "Edit Link"
  87 +msgstr "Link"
  88 +
  89 +#: .\templates\links\update_link.html:66
  90 +#, fuzzy
  91 +#| msgid "Link deleted Successfully!"
  92 +msgid "Link Sucessfully Updated!"
  93 +msgstr "Link apagado com sucesso!"
61 94
62 #: .\templates\links\view_link.html:8 95 #: .\templates\links\view_link.html:8
63 msgid "Link" 96 msgid "Link"
@@ -67,14 +100,17 @@ msgstr &quot;Link&quot; @@ -67,14 +100,17 @@ msgstr &quot;Link&quot;
67 msgid "Read more" 100 msgid "Read more"
68 msgstr "Ler mais" 101 msgstr "Ler mais"
69 102
70 -#: .\views.py:28  
71 -msgid "Link created successfully!"  
72 -msgstr "Link criado com sucesso!" 103 +#~ msgid "Confirm"
  104 +#~ msgstr "Confirmar"
73 105
74 -#: .\views.py:50  
75 -msgid "Link deleted Successfully!"  
76 -msgstr "Link apagado com sucesso!" 106 +#~ msgid "Links"
  107 +#~ msgstr "Links"
  108 +
  109 +#~ msgid "Name"
  110 +#~ msgstr "Nome"
  111 +
  112 +#~ msgid "URL"
  113 +#~ msgstr "URL"
77 114
78 -#: .\views.py:69  
79 -msgid "Link updated successfully!"  
80 -msgstr "Link atualizado com sucesso!" 115 +#~ msgid "Link updated successfully!"
  116 +#~ msgstr "Link atualizado com sucesso!"
links/migrations/0001_initial.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
  2 +
2 # Generated by Django 1.10 on 2016-11-16 20:54 3 # Generated by Django 1.10 on 2016-11-16 20:54
3 from __future__ import unicode_literals 4 from __future__ import unicode_literals
4 5
@@ -24,8 +25,8 @@ class Migration(migrations.Migration): @@ -24,8 +25,8 @@ class Migration(migrations.Migration):
24 ('image', models.ImageField(blank=True, upload_to='links/')), 25 ('image', models.ImageField(blank=True, upload_to='links/')),
25 ], 26 ],
26 options={ 27 options={
27 - 'verbose_name': 'Link',  
28 'verbose_name_plural': 'Links', 28 'verbose_name_plural': 'Links',
  29 + 'verbose_name': 'Link',
29 }, 30 },
30 bases=('courses.material',), 31 bases=('courses.material',),
31 ), 32 ),
links/migrations/0002_auto_20161116_1804.py 0 → 100644
@@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
  1 +# -*- coding: utf-8 -*-
  2 +# Generated by Django 1.10 on 2016-11-16 21:04
  3 +from __future__ import unicode_literals
  4 +
  5 +from django.db import migrations, models
  6 +
  7 +
  8 +class Migration(migrations.Migration):
  9 +
  10 + dependencies = [
  11 + ('links', '0001_initial'),
  12 + ]
  13 +
  14 + operations = [
  15 + migrations.AlterField(
  16 + model_name='link',
  17 + name='link_description',
  18 + field=models.CharField(max_length=200, verbose_name='Description'),
  19 + ),
  20 + migrations.AlterField(
  21 + model_name='link',
  22 + name='link_url',
  23 + field=models.URLField(verbose_name='Link_URL'),
  24 + ),
  25 + ]
links/models.py
1 from django.db import models 1 from django.db import models
2 from courses.models import Material 2 from courses.models import Material
3 from autoslug.fields import AutoSlugField 3 from autoslug.fields import AutoSlugField
  4 +from django.utils.translation import ugettext_lazy as _
  5 +
4 # Create your models here. 6 # Create your models here.
5 class Link(Material): 7 class Link(Material):
6 - link_url = models.URLField()  
7 - link_description = models.CharField(max_length=200) 8 + link_url = models.URLField(verbose_name = _("Link_URL"))
  9 + link_description = models.CharField(_('Description'),max_length=200)
8 image = models.ImageField(upload_to = 'links/',blank = True) 10 image = models.ImageField(upload_to = 'links/',blank = True)
9 class Meta: 11 class Meta:
10 verbose_name = 'Link' 12 verbose_name = 'Link'
links/templates/links/create_link.html
@@ -58,14 +58,14 @@ @@ -58,14 +58,14 @@
58 $('#requisicoes_ajax').empty(); 58 $('#requisicoes_ajax').empty();
59 $('#list-topic{{ topic.id }}-links').append(data); 59 $('#list-topic{{ topic.id }}-links').append(data);
60 $('#list-topic{{ topic.id }}-links-edit').append(data); 60 $('#list-topic{{ topic.id }}-links-edit').append(data);
61 - alertify.alert('Link successfully created!') 61 + alertify.success(" {% trans 'Link successfully created!' %} ");
62 }, 62 },
63 error: function(data){ 63 error: function(data){
64 $("div.modal-backdrop.fade.in").remove(); 64 $("div.modal-backdrop.fade.in").remove();
65 $('#requisicoes_ajax').empty(); 65 $('#requisicoes_ajax').empty();
66 $('#requisicoes_ajax').append(data.responseText); 66 $('#requisicoes_ajax').append(data.responseText);
67 $('#createLinksModal').modal('show'); 67 $('#createLinksModal').modal('show');
68 - alertify.alert('Invalid link, insert a valid one!'); 68 + alertify.error("{% trans 'Invalid link, insert a valid one!' %}");
69 } 69 }
70 }); 70 });
71 event.preventDefault(); 71 event.preventDefault();
links/templates/links/create_link.html.py
@@ -1,68 +0,0 @@ @@ -1,68 +0,0 @@
1 -BBBB BBBBBBBBBBBBB BBBB  
2 -  
3 -XXXXXXXXX XXXXXX XXXXXXX  
4 -XXXX XXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
5 - XXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX  
6 - XXXX XXXXXXXXXXXXXXXXXXXXXX  
7 - XXXX XXXXXXXXXXXXXXXXXXXXX  
8 - XXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
9 - XXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX gettext(u'Create a New Link') XXXXX  
10 - XXXXXX  
11 - XXXX XXXXXXXXXXXXXXXXXXX  
12 - XXXX XXXX XXX  
13 - XXXXX XXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
14 - BBBBBBBBBB  
15 - BB BBBBBBBB  
16 - BBB BBBBBBB BB BBBBBBBB  
17 - XXXX XXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX  
18 - XXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX  
19 - XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
20 - XXXXXXXXX  
21 - XXXXXXX  
22 - XXXXXX  
23 - BBBBBB  
24 - BBBBB  
25 - BBB BBBBB BB BBBB  
26 - BB BBBBBBBBBBBBBBBBBBBB  
27 - XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
28 - BBBB  
29 - XXXXXX XXXXXXXXXXXXXXX  
30 - BBBBB  
31 - BBBBBBBBBBBB BBBBB BBBBBBBBBBBBBBBBBBBB  
32 - BBBBBB  
33 - XXXX XXXXXXXXXXXXXXXXXXX  
34 - XX XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX gettext(u'Cancel') XXXX  
35 - XXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXX XXXXXXXX XXXXXXXXXXX  
36 - XXXXXX  
37 - XXXX XXXX XXXX XXX  
38 - XXXXXX  
39 - XXXXXX  
40 - XXXXXX  
41 -XXXXXX  
42 -XXXX XXXXXXXX XXX  
43 -  
44 -  
45 -XXXXXXX XXXXXXXXXXXXXXXXXXXXXXX  
46 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X  
47 - XXX XXXX X XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
48 - XXXXXXXX  
49 - XXXX XBBB BBBBBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBBBXX  
50 - XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
51 - XXXXX XXXXX  
52 - XXXXXX XXXXXX  
53 - XXXXXXXXXXXX XXXXXX  
54 - XXXXXXXXXXXX XXXXXX  
55 - XXXXXXXX XXXXXXXXXXXXXX X  
56 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
57 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
58 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
59 - XX  
60 - XXXXXX XXXXXXXXXXXXXXX  
61 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
62 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
63 - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
64 - X  
65 - XXX  
66 - XXXXXXXXXXXXXXXXXXXXXXX  
67 - XXX  
68 -XXXXXXXXX  
links/templates/links/delete_link.html
@@ -53,14 +53,14 @@ @@ -53,14 +53,14 @@
53 $('#link_{{ link.slug }}').remove(); 53 $('#link_{{ link.slug }}').remove();
54 $('#link_edit_icon_{{ link.slug }}').remove(); 54 $('#link_edit_icon_{{ link.slug }}').remove();
55 $('#link_edit_{{ link.slug }}').remove(); 55 $('#link_edit_{{ link.slug }}').remove();
56 - alertify.alert('Link successfully deleted!') 56 + alertify.success(" {% trans 'Link successfully deleted!' %} ");
57 }, 57 },
58 error: function(data){ 58 error: function(data){
59 $("div.modal-backdrop.fade.in").remove(); 59 $("div.modal-backdrop.fade.in").remove();
60 $('#requisicoes_ajax').empty(); 60 $('#requisicoes_ajax').empty();
61 $('#requisicoes_ajax').append(data.responseText); 61 $('#requisicoes_ajax').append(data.responseText);
62 $('#linkDeleteModal').modal('show'); 62 $('#linkDeleteModal').modal('show');
63 - alertify.alert('Error when trying to delete.'); 63 + alertify.error(" {% trans 'Error when trying to delete.' %} ");
64 } 64 }
65 }); 65 });
66 event.preventDefault(); 66 event.preventDefault();
links/templates/links/delete_link.html.py
@@ -1,22 +0,0 @@ @@ -1,22 +0,0 @@
1 -BBBB BBBBBBBBBBBBB BBBB  
2 -XXXX XXXXX XXXXXX XXXX XXX  
3 -XXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXX  
4 - XXXX XXXXXXXXXXXXXXXXXXXXX  
5 - XXXX XXXXXXXXXXXXXXXXXXXXXX  
6 - XXXX XXXXXXXXXXXXXXXXXXXXX  
7 - XXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
8 - XXX XXXXXXXXXXXXXXXXXXXXXXXXX  
9 - XXXXXX  
10 - XXXX XXXXXXXXXXXXXXXXXXX  
11 - XXX gettext(u'Do you really want to delete this link?') XXXX  
12 - XXXXXX  
13 - XXXX XXXXXXXXXXXXXXXXXXXXX  
14 - XXXX XXX  
15 - XXXXXXX XXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX gettext(u'Cancel') XXXXXXXXX  
16 - XX XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX gettext(u'Confirm') XXXXXXXXXXXXX  
17 -  
18 - XXXXXX  
19 - XXXXXX  
20 - XXXXXX  
21 -XXXXXX  
22 -XXXX XXX XXX  
links/templates/links/render_link.html.py
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -XXXXXX XXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXBBB BBBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBBXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
links/templates/links/update_link.html
@@ -63,14 +63,14 @@ @@ -63,14 +63,14 @@
63 $('#requisicoes_ajax').empty(); 63 $('#requisicoes_ajax').empty();
64 $('#link_edit_{{ link.slug }}').replaceWith(data); 64 $('#link_edit_{{ link.slug }}').replaceWith(data);
65 $('#link_{{ link.slug }}').replaceWith(data); 65 $('#link_{{ link.slug }}').replaceWith(data);
66 - alertify.alert("Sucessfully Updated!") 66 + alertify.success(" {% trans 'Link Sucessfully Updated!' %} ");
67 }, 67 },
68 error: function(data){ 68 error: function(data){
69 $("div.modal-backdrop.fade.in").remove(); 69 $("div.modal-backdrop.fade.in").remove();
70 $('#requisicoes_ajax').empty(); 70 $('#requisicoes_ajax').empty();
71 $('#requisicoes_ajax').append(data.responseText); 71 $('#requisicoes_ajax').append(data.responseText);
72 $('#linksModalEdit').modal(); 72 $('#linksModalEdit').modal();
73 - alertify.alert('Invalid link, insert a valid one!'); 73 + alertify.error("{% trans 'Invalid link, insert a valid one!' %}");
74 } 74 }
75 }); 75 });
76 event.preventDefault(); 76 event.preventDefault();
links/templates/links/update_link.html.py
@@ -1,33 +0,0 @@ @@ -1,33 +0,0 @@
1 -BBBB BBBBBBBBBBBBB BBBB  
2 -XXXX XXXXX XXXX XXXXXXX  
3 -XXXX XXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
4 - XXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX  
5 - XXXX XXXXXXXXXXXXXXXXXXXXXX  
6 - XXXX XXXXXXXXXXXXXXXXXXXXX  
7 - XXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
8 - XXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX gettext(u'Links') XXXXX  
9 - XXXXXX  
10 - XXXX XXXXXXXXXXXXXXXXXXX  
11 - XXXX XXXX XXX  
12 - XXXX XXXXXXXXXXXXXXXXXXX  
13 - XXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX gettext(u'Name') XXXXXXXX  
14 - XXXXXX XXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX  
15 - XXXXXX  
16 - XXXX XXXXXXXXXXXXXXXXXXX  
17 - XXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX gettext(u'URL') XXXXXXXX  
18 - XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX  
19 - XXXXXX  
20 - XXXX XXXXXXXXXXXXXXXXX XXXXXXXXXX  
21 - XXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX gettext(u'Descrição') XXXXXXXX  
22 - XXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX  
23 - XXXXXX  
24 - XXXX XXXXXXXXXXXXXXXXXXX  
25 - XX XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX gettext(u'Cancel') XXXX  
26 - XX XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXXX gettext(u'Submit') XXXX  
27 - XXXXXX  
28 - XXXX XXXX XXXX XXX  
29 - XXXXXX  
30 - XXXXXX  
31 - XXXXXX  
32 -XXXXXX  
33 -XXXX XXXXXXXX XXX  
links/templates/links/view_link.html.py
@@ -1,32 +0,0 @@ @@ -1,32 +0,0 @@
1 -BBBB BBBBBB BBBB BBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBB  
2 -XXXXXXXXX XXXX XXXXXXX  
3 -XXXX XXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
4 - XXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX  
5 - XXXX XXXXXXXXXXXXXXXXXXXXXX  
6 - XXXX XXXXXXXXXXXXXXXXXXXXX  
7 - XXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
8 - XXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX gettext(u'Link') XXXXX  
9 - XXXXXX  
10 - XXXX XXXXXXXXXXXXXXXXXXX  
11 - XXXX XXXX XXX  
12 - XXXXXXXX XXXXXXXXXXX XXXXXXXX XXXXXXXXXXXX  
13 - XXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX  
14 - XXXX XXXXXXXXXXXXXXXXXXX  
15 - XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
16 - XX XXXXXXXXXXXXXXXXXX XXXXXXXXXXX  
17 - XX XXXXXXX XXXXXXXXXX XXXXXXXXXXXXX gettext(u'Read more') XXXX  
18 - XXXXXX  
19 - XXXXXXXXXX  
20 - XXXX XXXX XXXX XXX  
21 - XXXXXX  
22 - XXXXXX  
23 - XXXXXX  
24 -XXXXXX  
25 -  
26 -XXXX XXXXX X XXXXX XX XXXXXXXXXXXXXXXX  
27 -  
28 -XXXXXX  
29 -XXXX XXXXXXXX XXX  
30 -XXXXXXX XXXXXXXXXXXXXXXXXXXXXXX  
31 -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
32 -XXXXXXXXX  
poll/migrations/0001_initial.py
@@ -25,9 +25,9 @@ class Migration(migrations.Migration): @@ -25,9 +25,9 @@ class Migration(migrations.Migration):
25 ('order', models.PositiveSmallIntegerField(verbose_name='Order')), 25 ('order', models.PositiveSmallIntegerField(verbose_name='Order')),
26 ], 26 ],
27 options={ 27 options={
28 - 'verbose_name': 'Answer',  
29 'verbose_name_plural': 'Answers', 28 'verbose_name_plural': 'Answers',
30 'ordering': ('order',), 29 'ordering': ('order',),
  30 + 'verbose_name': 'Answer',
31 }, 31 },
32 ), 32 ),
33 migrations.CreateModel( 33 migrations.CreateModel(
@@ -39,8 +39,8 @@ class Migration(migrations.Migration): @@ -39,8 +39,8 @@ class Migration(migrations.Migration):
39 ('answer', models.ManyToManyField(related_name='answers_stundet', to='poll.Answer', verbose_name='Answers Students')), 39 ('answer', models.ManyToManyField(related_name='answers_stundet', to='poll.Answer', verbose_name='Answers Students')),
40 ], 40 ],
41 options={ 41 options={
42 - 'verbose_name': 'Answer Stundent',  
43 'verbose_name_plural': 'Answers Student', 42 'verbose_name_plural': 'Answers Student',
  43 + 'verbose_name': 'Answer Stundent',
44 }, 44 },
45 ), 45 ),
46 migrations.CreateModel( 46 migrations.CreateModel(
@@ -49,8 +49,8 @@ class Migration(migrations.Migration): @@ -49,8 +49,8 @@ class Migration(migrations.Migration):
49 ('activity_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='courses.Activity')), 49 ('activity_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='courses.Activity')),
50 ], 50 ],
51 options={ 51 options={
52 - 'verbose_name': 'Poll',  
53 'verbose_name_plural': 'Polls', 52 'verbose_name_plural': 'Polls',
  53 + 'verbose_name': 'Poll',
54 }, 54 },
55 bases=('courses.activity',), 55 bases=('courses.activity',),
56 ), 56 ),
users/migrations/0001_initial.py
@@ -46,8 +46,8 @@ class Migration(migrations.Migration): @@ -46,8 +46,8 @@ class Migration(migrations.Migration):
46 ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')), 46 ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
47 ], 47 ],
48 options={ 48 options={
49 - 'verbose_name': 'User',  
50 'verbose_name_plural': 'Users', 49 'verbose_name_plural': 'Users',
  50 + 'verbose_name': 'User',
51 }, 51 },
52 managers=[ 52 managers=[
53 ('objects', django.contrib.auth.models.UserManager()), 53 ('objects', django.contrib.auth.models.UserManager()),