Commit 4747a612586c30a75082134fb3755c172e91d669

Authored by Felipe Henrique de Almeida Bormann
2 parents 4ed161c7 37a92b0f

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

amadeus/context_processors.py 0 → 100644
@@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
  1 +from themes.models import Themes
  2 +
  3 +def theme(request):
  4 + context = {}
  5 +
  6 + theme = Themes.objects.get(id = 1)
  7 +
  8 + context['theme'] = theme
  9 +
  10 + return context
0 \ No newline at end of file 11 \ No newline at end of file
amadeus/settings.py
@@ -92,6 +92,7 @@ TEMPLATES = [ @@ -92,6 +92,7 @@ TEMPLATES = [
92 'django.template.context_processors.request', 92 'django.template.context_processors.request',
93 'django.contrib.auth.context_processors.auth', 93 'django.contrib.auth.context_processors.auth',
94 'django.contrib.messages.context_processors.messages', 94 'django.contrib.messages.context_processors.messages',
  95 + 'amadeus.context_processors.theme',
95 ], 96 ],
96 }, 97 },
97 }, 98 },
amadeus/static/css/base/amadeus.css
  1 +ul, li {
  2 + list-style-type: none;
  3 + text-decoration: none;
  4 +}
  5 +
1 .pagination > li > a, .pagination > li > span { 6 .pagination > li > a, .pagination > li > span {
2 padding: 0px 8px; 7 padding: 0px 8px;
3 } 8 }
@@ -34,10 +39,9 @@ @@ -34,10 +39,9 @@
34 width: 70%; 39 width: 70%;
35 } 40 }
36 41
37 -.my-subjects-title{ 42 +.my-subjects-title {
38 font-family: Roboto; 43 font-family: Roboto;
39 - font-size: 18px;  
40 - color: #26A69A; 44 + font-size: 18px;
41 } 45 }
42 46
43 /* initial page ends */ 47 /* initial page ends */
@@ -48,27 +52,13 @@ @@ -48,27 +52,13 @@
48 padding-left: 0px; 52 padding-left: 0px;
49 } 53 }
50 54
51 -#sidebar-menu .item{ 55 +#sidebar-menu .item {
52 font-size: 3vw; 56 font-size: 3vw;
53 - background-color: #26A69A;  
54 - color: white;  
55 width: 80%; 57 width: 80%;
56 margin: 10px 0px 10px 10px; 58 margin: 10px 0px 10px 10px;
57 text-align: center; 59 text-align: center;
58 } 60 }
59 61
60 -#sidebar-menu .item a{  
61 - color: white;  
62 -}  
63 -  
64 -#sidebar-menu > .subjects_menu_active {  
65 - background-color: #00695C;  
66 -}  
67 -  
68 -#sidebar-menu > .item:hover{  
69 - background-color: #00695C;  
70 -}  
71 -  
72 #subjects-link{ 62 #subjects-link{
73 margin-top: 0px !important; 63 margin-top: 0px !important;
74 } 64 }
@@ -76,21 +66,9 @@ @@ -76,21 +66,9 @@
76 #sidebar-menu-div{ 66 #sidebar-menu-div{
77 padding-right: 10px; 67 padding-right: 10px;
78 } 68 }
79 -  
80 -  
81 -  
82 /* side bar menu ends*/ 69 /* side bar menu ends*/
83 70
84 /* category app starts */ 71 /* category app starts */
85 -  
86 -.panel-invisible{  
87 - background-color: #BDBDBD !important;  
88 - color: #F5F5F5;  
89 -}  
90 -  
91 -.category-panel > .panel-heading {  
92 - background-color: #0277BD !important;  
93 -}  
94 .category-panel > .panel-heading, .subject-panel > .panel-heading, .special-panel > .panel-heading { 72 .category-panel > .panel-heading, .subject-panel > .panel-heading, .special-panel > .panel-heading {
95 padding: 2px 0px; 73 padding: 2px 0px;
96 } 74 }
@@ -99,10 +77,6 @@ @@ -99,10 +77,6 @@
99 padding: 2px 0px; 77 padding: 2px 0px;
100 } 78 }
101 79
102 -.subject-panel > .panel-heading {  
103 - background-color: #039BE5 !important;  
104 -}  
105 -  
106 .subject-group { 80 .subject-group {
107 margin-left: 20px; 81 margin-left: 20px;
108 } 82 }
@@ -129,84 +103,58 @@ @@ -129,84 +103,58 @@
129 float: none; 103 float: none;
130 } 104 }
131 105
132 -.category-header i{  
133 - color: white; 106 +.category-header i {
134 font-size: 20px; 107 font-size: 20px;
135 float: right; 108 float: right;
136 } 109 }
137 110
138 -.category-header i:hover{  
139 - color: #90CAF9;  
140 -}  
141 -  
142 -  
143 -.category-header .dropdown-menu i {  
144 - color: inherit;  
145 -}  
146 -  
147 .cat-selector { 111 .cat-selector {
148 margin: 0; 112 margin: 0;
149 top: -2px; 113 top: -2px;
150 } 114 }
151 115
152 -#create-category{  
153 - margin-left: 20%;  
154 - margin-bottom: 1%;  
155 - border: none;  
156 - background-color: #66BB6A;  
157 - color: #FFFFFF;  
158 - width: 60%;  
159 - height: 40px;  
160 - font-size: 15px; 116 +#create-category {
  117 + margin-left: 20%;
  118 + margin-bottom: 1%;
  119 + border: none;
  120 + width: 60%;
  121 + height: 40px;
  122 + font-size: 15px;
161 } 123 }
162 124
163 -.category-panel-content{  
164 - padding:10px;  
165 - background: #F5F5F5; 125 +.category-panel-content {
  126 + padding:10px;
166 } 127 }
167 128
168 -  
169 -  
170 .core-subjects-options{ 129 .core-subjects-options{
171 - padding: 0px; 130 + padding: 0px;
172 } 131 }
173 132
174 -  
175 #core-subjects-options-div{ 133 #core-subjects-options-div{
176 width: 100%; 134 width: 100%;
177 margin-bottom: 10px; 135 margin-bottom: 10px;
178 height: 50px; 136 height: 50px;
179 } 137 }
180 138
181 -.core-subjects-options li{ 139 +.core-subjects-options li {
182 float:left; 140 float:left;
183 padding: 10px; 141 padding: 10px;
184 padding-bottom: 8px; 142 padding-bottom: 8px;
185 - background-color: #FFFFFF;  
186 margin: 1px; 143 margin: 1px;
187 border-bottom: 5px; 144 border-bottom: 5px;
188 border-bottom-style: solid; 145 border-bottom-style: solid;
189 - border-bottom-color: #D2D2D2;  
190 - color: #A0A0A0;  
191 -}  
192 -  
193 -.core-subjects-options li.active{  
194 - color: inherit;  
195 - border-bottom-color: #00695C;  
196 } 146 }
197 147
198 #delete-category-footer{ 148 #delete-category-footer{
199 - border-top:none !important; 149 + border-top:none !important;
200 } 150 }
201 151
202 .erase-button{ 152 .erase-button{
203 - float:left; 153 + float:left;
204 } 154 }
205 155
206 -.create-subject-btn{ 156 +.create-subject-btn {
207 width: 100%; 157 width: 100%;
208 - background-color: #26A69A;  
209 - color: white;  
210 border: 0px; 158 border: 0px;
211 margin-bottom: 10px; 159 margin-bottom: 10px;
212 } 160 }
@@ -221,31 +169,26 @@ @@ -221,31 +169,26 @@
221 } 169 }
222 170
223 #coordinators_accordion .panel-heading, #professors_accordion .panel-heading { 171 #coordinators_accordion .panel-heading, #professors_accordion .panel-heading {
224 - background: #FFFFFF;  
225 border: none; 172 border: none;
226 } 173 }
227 174
228 #coordinators_accordion .panel-collapse, #professors_accordion .panel-collapse { 175 #coordinators_accordion .panel-collapse, #professors_accordion .panel-collapse {
229 padding: 10px; 176 padding: 10px;
230 } 177 }
231 -  
232 /* category app ends */ 178 /* category app ends */
233 179
234 .clearfix{ 180 .clearfix{
235 - clear: both; 181 + clear: both;
236 } 182 }
237 183
238 .mg-b-5m{ 184 .mg-b-5m{
239 - margin-bottom: 5em; 185 + margin-bottom: 5em;
240 } 186 }
241 187
242 /* NavBar Top */ 188 /* NavBar Top */
243 .navbar-brand { 189 .navbar-brand {
244 height: 50px !important; 190 height: 50px !important;
245 } 191 }
246 -.navbar-brand:hover {  
247 - background: #00695C !important;  
248 -}  
249 192
250 .navbar .navbar-form { 193 .navbar .navbar-form {
251 margin-top: 10px; 194 margin-top: 10px;
@@ -262,11 +205,6 @@ @@ -262,11 +205,6 @@
262 font-weight: normal; 205 font-weight: normal;
263 padding-left: 10px; 206 padding-left: 10px;
264 font-size: 20px; 207 font-size: 20px;
265 - color: white;  
266 -}  
267 -  
268 -.navbar-nav li.open {  
269 - background: #00695C;  
270 } 208 }
271 209
272 .navbar-nav li > a { 210 .navbar-nav li > a {
@@ -275,21 +213,11 @@ @@ -275,21 +213,11 @@
275 padding-left: 20px; 213 padding-left: 20px;
276 max-height: 50px; 214 max-height: 50px;
277 } 215 }
278 -.navbar-nav li > a:hover {  
279 - background: #00695C !important;  
280 -}  
281 -  
282 -.navbar-nav li.settings_menu_active {  
283 - background: #00695C  
284 -}  
285 216
286 .submenu { 217 .submenu {
287 -webkit-padding-start: 0px; 218 -webkit-padding-start: 0px;
288 } 219 }
289 220
290 -.top-search {  
291 - color: #F5F5F5;  
292 -}  
293 .top-search::-webkit-input-placeholder { 221 .top-search::-webkit-input-placeholder {
294 font-style: italic; 222 font-style: italic;
295 } 223 }
@@ -302,48 +230,24 @@ @@ -302,48 +230,24 @@
302 .top-search:-moz-placeholder { 230 .top-search:-moz-placeholder {
303 font-style: italic; 231 font-style: italic;
304 } 232 }
305 -  
306 -#btn-search:hover {  
307 - background: #00695C;  
308 -}  
309 /* End NavBar Top */ 233 /* End NavBar Top */
310 234
311 /* Dropdown menu Topbar */ 235 /* Dropdown menu Topbar */
312 -.dropdown-menu {  
313 - background: #F5F5F5;  
314 -}  
315 -  
316 .dropdown-menu li > a { 236 .dropdown-menu li > a {
317 - background: #F5F5F5;  
318 font-family: Roboto; 237 font-family: Roboto;
319 font-size: 16px; 238 font-size: 16px;
320 - color: #333333;  
321 -}  
322 -.dropdown-menu li > a:hover {  
323 - background: #EEEEEE !important;  
324 } 239 }
325 240
326 #system_accordion { 241 #system_accordion {
327 margin-bottom: 0px; 242 margin-bottom: 0px;
328 } 243 }
329 244
330 -#system_accordion > .panel > .panel-heading {  
331 - background: #F5F5F5;  
332 -}  
333 -#system_accordion > .panel > .panel-heading:hover {  
334 - background: #EEEEEE;  
335 -}  
336 -  
337 #system_accordion > .panel > .panel-heading > a > .panel-title { 245 #system_accordion > .panel > .panel-heading > a > .panel-title {
338 font-weight: normal; 246 font-weight: normal;
339 - color: #333333;  
340 -}  
341 -#system_accordion > .panel > .panel-heading > a > .panel-title:hover {  
342 - color: #009688;  
343 } 247 }
  248 +
344 #system_accordion > .panel > .panel-heading > a:hover { 249 #system_accordion > .panel > .panel-heading > a:hover {
345 text-decoration: none; 250 text-decoration: none;
346 - color: #009688;  
347 } 251 }
348 #system_accordion > .panel > .panel-heading > a:focus { 252 #system_accordion > .panel > .panel-heading > a:focus {
349 text-decoration: none; 253 text-decoration: none;
@@ -354,10 +258,6 @@ @@ -354,10 +258,6 @@
354 padding-bottom: 0px; 258 padding-bottom: 0px;
355 } 259 }
356 260
357 -#system_menu {  
358 - background: #F5F5F5;  
359 -}  
360 -  
361 .submenu a { 261 .submenu a {
362 font-family: Roboto; 262 font-family: Roboto;
363 font-weight: normal; 263 font-weight: normal;
@@ -371,29 +271,34 @@ @@ -371,29 +271,34 @@
371 /* End Dropdown menu Topbar */ 271 /* End Dropdown menu Topbar */
372 272
373 /* Modal */ 273 /* Modal */
374 -.modal-header {min-height: 60px; border-bottom: 1px solid #E6E7E8 !important; padding-bottom: 15px !important;}  
375 -.modal-footer {text-align: right; padding-top: 5px !important; border-top: 1px solid #E6E7E8 !important;} 274 +.modal-header {
  275 + min-height: 60px;
  276 + padding-bottom: 15px !important;
  277 +}
  278 +.modal-footer {
  279 + text-align: right;
  280 + padding-top: 5px !important;
  281 +}
376 282
377 /* HEADER */ 283 /* HEADER */
378 #notification-dropdown{ 284 #notification-dropdown{
379 - max-height: 500%;  
380 - overflow: auto;  
381 - width: 300px; 285 + max-height: 500%;
  286 + overflow: auto;
  287 + width: 300px;
382 } 288 }
383 #NavBarSearch{ 289 #NavBarSearch{
384 position: absolute; 290 position: absolute;
385 left: 30%; 291 left: 30%;
386 - } 292 +}
387 #btn-search{ 293 #btn-search{
388 - margin-bottom: 0px;  
389 - } 294 + margin-bottom: 0px;
  295 +}
390 .user-notification-img{ 296 .user-notification-img{
391 - width:40%; 297 + width:40%;
392 } 298 }
393 299
394 #horizontal-line{ 300 #horizontal-line{
395 - height:2px;  
396 - background-color: black; 301 + height:2px;
397 } 302 }
398 303
399 .navbar .dropdown-menu li>a, .navbar.navbar-default .dropdown-menu li>a { 304 .navbar .dropdown-menu li>a, .navbar.navbar-default .dropdown-menu li>a {
@@ -402,8 +307,6 @@ @@ -402,8 +307,6 @@
402 } 307 }
403 308
404 /* HEADER */ 309 /* HEADER */
405 -  
406 -  
407 .logoLogin{ 310 .logoLogin{
408 padding-bottom: 1%; 311 padding-bottom: 1%;
409 width: 15%; 312 width: 15%;
@@ -418,18 +321,6 @@ @@ -418,18 +321,6 @@
418 margin-bottom: 5px; 321 margin-bottom: 5px;
419 font-style: italic; 322 font-style: italic;
420 } 323 }
421 -  
422 -.breadcrumb > li > span.divider {  
423 - color: #26A69A;  
424 -}  
425 -  
426 -.breadcrumb > li > a{  
427 - color: #26A69A;  
428 -}  
429 -  
430 -.breadcrumb > li {  
431 - color: #BDBDBD;  
432 -}  
433 /* End Breadcrumbs */ 324 /* End Breadcrumbs */
434 325
435 .courseHome{ 326 .courseHome{
@@ -468,227 +359,24 @@ @@ -468,227 +359,24 @@
468 text-align: right; 359 text-align: right;
469 } 360 }
470 #img { 361 #img {
471 -  
472 display: block; 362 display: block;
473 margin: auto; 363 margin: auto;
474 width: 50%; 364 width: 50%;
475 -  
476 } 365 }
477 -ul {  
478 - list-style-type:none  
479 -}  
480 -  
481 -  
482 -/*CSS TIMELINE*/  
483 -  
484 -.panel-title{ /*Because we use an outer a tag*/  
485 - color: rgba(255,255,255,.84);  
486 -}  
487 -  
488 -.bubble {  
489 - width: 100%;  
490 - padding: .5em 1em;  
491 - line-height: 1.4em;  
492 - padding: 20px;  
493 - background-color: #ecf0f1;  
494 - position: relative;  
495 - -webkit-border-radius: 8px;  
496 - -moz-border-radius: 8px;  
497 - -ms-border-radius: 8px;  
498 - -o-border-radius: 8px;  
499 - border-radius: 8px;  
500 - text-align: left;  
501 - display: inline-block; }  
502 - .bubble:hover > .over-bubble {  
503 - opacity: 1; }  
504 -  
505 -.bubble-container {  
506 - width: 75%;  
507 - display: block;  
508 - position: relative;  
509 - padding-left: 20px;  
510 - vertical-align: top;  
511 - display: inline-block; }  
512 -  
513 -.arrow {  
514 - content: '';  
515 - display: block;  
516 - position: absolute;  
517 - left: 12px;  
518 - bottom: 25%;  
519 - height: 0;  
520 - width: 0;  
521 - border-top: 20px solid transparent;  
522 - border-bottom: 20px solid transparent;  
523 - border-right: 20px solid #ecf0f1; }  
524 -  
525 -.timeline {  
526 - width: 560px;  
527 - display: block;  
528 - margin: auto;  
529 - background-color: #dde1e2;  
530 - padding-bottom: 2em;  
531 - -webkit-box-shadow: #bdc3c7 0 5px 5px;  
532 - -moz-box-shadow: #bdc3c7 0 5px 5px;  
533 - box-shadow: #bdc3c7 0 5px 5px;  
534 - -moz-border-radius-bottomleft: 8px;  
535 - -webkit-border-bottom-left-radius: 8px;  
536 - border-bottom-left-radius: 8px;  
537 - -moz-border-radius-bottomright: 8px;  
538 - -webkit-border-bottom-right-radius: 8px;  
539 - border-bottom-right-radius: 8px;  
540 - margin-bottom: 2em; }  
541 - .timeline li {  
542 - padding: 1em 0; }  
543 - .timeline li.not_read {  
544 - background-color: #d3d7d8; }  
545 -  
546 -.avatar {  
547 - width: 18%;  
548 - display: inline-block;  
549 - vertical-align: top;  
550 - position: relative;  
551 - overflow: hidden;  
552 - margin-left: 2%; }  
553 - .avatar img {  
554 - width: 100%;  
555 - -webkit-border-radius: 50%;  
556 - -moz-border-radius: 50%;  
557 - -ms-border-radius: 50%;  
558 - -o-border-radius: 50%;  
559 - border-radius: 50%;  
560 - border: 5px solid #ecf0f1;  
561 - position: relative; }  
562 -  
563 -  
564 -  
565 -.first {  
566 - width: 560px;  
567 - display: block;  
568 - margin: auto;  
569 - background-color: #3498db;  
570 - text-shadow: #2084c7 1px 1px 0;  
571 - padding: 1em 0 !important;  
572 - color: white;  
573 - text-align: center;  
574 - margin-top: 1em;  
575 - font-family: "Lato";  
576 - font-size: 1.6em;  
577 - -moz-border-radius-topleft: 8px;  
578 - -webkit-border-top-left-radius: 8px;  
579 - border-top-left-radius: 8px;  
580 - -moz-border-radius-topright: 8px;  
581 - -webkit-border-top-right-radius: 8px;  
582 - border-top-right-radius: 8px;  
583 - position: relative; }  
584 -  
585 -  
586 -.over-bubble {  
587 - line-height: 1.4em;  
588 - padding-top: 10%;  
589 - background-color: rgba(236, 240, 241, 0.8);  
590 - position: relative;  
591 - -webkit-border-radius: 8px;  
592 - -moz-border-radius: 8px;  
593 - -ms-border-radius: 8px;  
594 - -o-border-radius: 8px;  
595 - border-radius: 8px;  
596 - text-align: center;  
597 - display: inline-block;  
598 - position: absolute !important;  
599 - height: 100%;  
600 - width: 100%;  
601 - opacity: 0;  
602 - top: 0;  
603 - left: 0;  
604 - z-index: 999;  
605 - -webkit-transition-property: all;  
606 - -moz-transition-property: all;  
607 - -o-transition-property: all;  
608 - transition-property: all;  
609 - -webkit-transition-duration: 0.3s;  
610 - -moz-transition-duration: 0.3s;  
611 - -o-transition-duration: 0.3s;  
612 - transition-duration: 0.3s;  
613 - -webkit-transition-timing-function: ease-in;  
614 - -moz-transition-timing-function: ease-in;  
615 - -o-transition-timing-function: ease-in;  
616 - transition-timing-function: ease-in;  
617 - font-size: 2.8em;  
618 - text-shadow: white 1px 1px 0; }  
619 -  
620 -.action {  
621 - margin-right: .3em;  
622 - -webkit-transition-property: all;  
623 - -moz-transition-property: all;  
624 - -o-transition-property: all;  
625 - transition-property: all;  
626 - -webkit-transition-duration: 0.2s;  
627 - -moz-transition-duration: 0.2s;  
628 - -o-transition-duration: 0.2s;  
629 - transition-duration: 0.2s;  
630 - -webkit-transition-timing-function: ease-in;  
631 - -moz-transition-timing-function: ease-in;  
632 - -o-transition-timing-function: ease-in;  
633 - transition-timing-function: ease-in; }  
634 -  
635 -  
636 -  
637 -.icon-more-horiz {margin-top: 0px; margin-bottom: 0px; padding-left: 0px;}  
638 -  
639 -.retweet {  
640 - position: absolute;  
641 - opacity: 1;  
642 - top: 0;  
643 - right: 1em;  
644 - display: block;  
645 - background-color: #16a085;  
646 - padding: 4px;  
647 - -moz-border-radius-bottomleft: 5px;  
648 - -webkit-border-bottom-left-radius: 5px;  
649 - border-bottom-left-radius: 5px;  
650 - -moz-border-radius-bottomright: 5px;  
651 - -webkit-border-bottom-right-radius: 5px;  
652 - border-bottom-right-radius: 5px; }  
653 - .retweet .icon-retweet {  
654 - color: white;  
655 - margin: auto;  
656 - width: 100%;  
657 - display: block;  
658 - font-size: 1.2em; }  
659 -  
660 -/*CSS NOTIFICACIONS*/  
661 -  
662 -.alert_list{font-size: 11px; color:grey}  
663 -li.alert_li {  
664 - font-size: 11px;  
665 - color:grey;  
666 - padding:10px 0px 2px 0px;  
667 - border-bottom: thin solid #c0c0c0;  
668 -}  
669 -li.alert_li:hover{background-color:#eee}  
670 -.turn_off_alert{float:right;margin-bottom :1px}  
671 -a.alert_message{color : grey}  
672 -a.alert_message:hover{color : grey}  
673 366
674 .breadcrumb .divider{ 367 .breadcrumb .divider{
675 - display: none; 368 + display: none;
676 } 369 }
677 370
678 /*Logo register user*/ 371 /*Logo register user*/
679 #logo{ 372 #logo{
680 - max-width: 40%;  
681 - margin-top: 1em;  
682 - margin-bottom: 1em; 373 + max-width: 40%;
  374 + margin-top: 1em;
  375 + margin-bottom: 1em;
683 } 376 }
684 /*====================== ========*/ 377 /*====================== ========*/
685 -  
686 -.accordion {  
687 - background: white;  
688 -}  
689 .accordion_list { 378 .accordion_list {
690 padding-left: 4px; 379 padding-left: 4px;
691 - background: #F5F5F5;  
692 } 380 }
693 381
694 .container-fluid { 382 .container-fluid {
@@ -696,62 +384,11 @@ a.alert_message:hover{color : grey} @@ -696,62 +384,11 @@ a.alert_message:hover{color : grey}
696 padding-right: 40px; 384 padding-right: 40px;
697 } 385 }
698 386
699 -body .container .jumbotron-inverse, body .container .well-inverse, body .container-fluid .jumbotron-inverse, body .container-fluid .well-inverse {  
700 - background-color: white;  
701 -}  
702 -.forum_collapse {  
703 - color: #000;  
704 -}  
705 -.forum_collapse:hover, .forum_collapse:focus {  
706 - text-decoration: none;  
707 - color: #000;  
708 -}  
709 -  
710 -/*TIMELINE CLASSES BEGIN */  
711 -.resource_inline{  
712 - display: inline-block;  
713 -}  
714 -  
715 -.imgTimeLine{  
716 - width: 100%;  
717 - height: auto;  
718 - padding-top: 10px;  
719 -}  
720 -.timeLine div .col-md-11{  
721 - padding-left: 0px;  
722 -}  
723 -.timeLine div .col-md-11 i{  
724 - padding-right: 5px;  
725 -}  
726 -  
727 -/*TIMELINE CLASSES END*/  
728 -  
729 -.notification-count {  
730 - background-color: #FF0000;  
731 -}  
732 -  
733 -.img-list-user{  
734 - width: 150px;  
735 - height: 150px;  
736 -}  
737 -  
738 -.datepicker{z-index:9999 !important}  
739 -  
740 -ul, li {  
741 - list-style-type: none !important;  
742 - text-decoration: none !important;  
743 -}  
744 -  
745 .icon_edit_remove{ 387 .icon_edit_remove{
746 - float: right; 388 + float: right;
747 } 389 }
748 390
749 -  
750 /* core/index.html classes*/ 391 /* core/index.html classes*/
751 -.outside-title {  
752 - color: #43a251;  
753 -}  
754 -  
755 .logo-login{ 392 .logo-login{
756 margin-top: 15px; 393 margin-top: 15px;
757 margin-bottom: 15px; 394 margin-bottom: 15px;
@@ -777,87 +414,78 @@ ul, li { @@ -777,87 +414,78 @@ ul, li {
777 /* core/register_user.html classes*/ 414 /* core/register_user.html classes*/
778 415
779 .block-register-inline{ 416 .block-register-inline{
780 - float: left;  
781 - display: inline-block; 417 + float: left;
  418 + display: inline-block;
782 } 419 }
783 420
784 /* core/reset_password.html classes*/ 421 /* core/reset_password.html classes*/
785 .send-reset-email{ 422 .send-reset-email{
786 - float: right;  
787 -}  
788 -  
789 -/* forum post loaded */  
790 -@-webkit-keyframes loaded {  
791 - 0% {  
792 - background-color: Yellow;  
793 - opacity: 0.2;  
794 - }  
795 - 22% {  
796 - background-color: Yellow;  
797 - opacity: 0.3;  
798 - }  
799 - 77% {  
800 - background-color: Yellow;  
801 - opacity: 0.6;  
802 - }  
803 - 100% {  
804 - background-color: White;  
805 - }  
806 -}  
807 -  
808 -.loaded {  
809 - -webkit-animation-name: loaded;  
810 - -webkit-animation-duration: 900ms;  
811 - -webkit-animation-iteration-count: 3;  
812 - -webkit-animation-timing-function: ease-in-out; 423 + float: right;
813 } 424 }
  425 +
814 /* Icon Topic */ 426 /* Icon Topic */
815 .divMoreActions { 427 .divMoreActions {
816 - text-align: right; height: 30px; float: right;  
817 - width: 3%; 428 + text-align: right;
  429 + height: 30px;
  430 + float: right;
  431 + width: 3%;
818 } 432 }
819 433
820 .divMoreActions > .btn-group { 434 .divMoreActions > .btn-group {
821 - margin: 0px !important; 435 + margin: 0px !important;
822 } 436 }
823 437
824 .moreAccordion { 438 .moreAccordion {
825 - height: 30px; 439 + height: 30px;
  440 +}
  441 +
  442 +.moreAccordion button {
  443 + margin-bottom: 0px;
  444 + margin-top: 8px;
  445 +}
  446 +
  447 +.titleTopic {
  448 + padding-top: 10px;
  449 + padding-bottom: 10px;
  450 +}
  451 +
  452 +.titleTopic a:hover{
  453 + text-decoration: none;
826 } 454 }
827 -/*.divMoreActions div button {padding-left: 10px; padding-right: 10px; padding-bottom: 10px; margin-bottom: 4px; height: 31px;}*/  
828 455
829 -.moreAccordion button{margin-bottom: 0px; margin-top: 8px;}  
830 -.titleTopic {padding-top: 10px; padding-bottom: 10px;}  
831 -.titleTopic a h4, .titleTopic h4{color: white;}  
832 -.titleTopic a:hover{text-decoration: none;}  
833 -.Topic-detail a h4{color: black;}  
834 -/* .titleTopic a h4 {margin-top: 0px; color: black; cursor:pointer;}*/  
835 .dropdown-menu .pull-right { 456 .dropdown-menu .pull-right {
836 right: 0; 457 right: 0;
837 - } 458 +}
  459 +
838 .cards-content{ 460 .cards-content{
839 - padding-left: 0px; padding-right: 0px;  
840 - font-family: Roboto;  
841 - font-size: 18px; 461 + padding-left: 0px;
  462 + padding-right: 0px;
  463 + font-family: Roboto;
  464 + font-size: 18px;
  465 +}
  466 +.cards-detail {
  467 + margin-left: 4%;
  468 +}
  469 +
  470 +.course, .subject, .topic {
  471 + padding-top: 0px;
  472 + padding-bottom: 0px;
  473 +}
  474 +.course-detail {
  475 + padding-top: 10px;
  476 + padding-bottom: 10px;
842 } 477 }
843 -.cards-detail{margin-left: 4%;}  
844 -.cards-detail .panel .panel-heading{/*background-color:;*/}  
845 -.cards-detail .panel .panel-heading h4{color:black;}  
846 -.course, .subject, .topic{ padding-top: 0px; padding-bottom: 0px; }  
847 -.course-detail{padding-top: 10px; padding-bottom: 10px;}  
848 478
849 .course-card{ 479 .course-card{
850 - margin-bottom: 0.4% !important; 480 + margin-bottom: 0.4% !important;
851 } 481 }
852 482
853 .course-card-group{ 483 .course-card-group{
854 - margin-bottom: 1%; 484 + margin-bottom: 1%;
855 } 485 }
856 -.data_register_course p{ color: grey; }  
857 486
858 -.category-course-link{ 487 +.category-course-link {
859 font-size: 16px; 488 font-size: 16px;
860 - color: #FFFFFF !important;  
861 font-family: Roboto; 489 font-family: Roboto;
862 font-weight: normal; 490 font-weight: normal;
863 } 491 }
@@ -868,31 +496,30 @@ ul, li { @@ -868,31 +496,30 @@ ul, li {
868 496
869 /* Menu link remove radius */ 497 /* Menu link remove radius */
870 .nav-pills > li > a { 498 .nav-pills > li > a {
871 - border-radius: 0px; 499 + border-radius: 0px;
872 } 500 }
873 501
874 .float-button{ 502 .float-button{
875 - float: right;  
876 - position: fixed;  
877 - bottom: 5%;  
878 - right: 5%;  
879 - font-size: 20px; 503 + float: right;
  504 + position: fixed;
  505 + bottom: 5%;
  506 + right: 5%;
  507 + font-size: 20px;
880 } 508 }
881 509
882 /* === Amadeus settings*/ 510 /* === Amadeus settings*/
883 #panel2 .form-group{ 511 #panel2 .form-group{
884 - margin: 0; 512 + margin: 0;
885 } 513 }
886 514
887 #panel2 .col-md-2, #panel2 .col-md-10{ 515 #panel2 .col-md-2, #panel2 .col-md-10{
888 - padding-left: 0; 516 + padding-left: 0;
889 } 517 }
890 518
891 /* Profile */ 519 /* Profile */
892 .profile_function { 520 .profile_function {
893 padding-bottom: 7px; 521 padding-bottom: 7px;
894 font-size: 16px; 522 font-size: 16px;
895 - border-bottom: 1px solid #D2D2D2;  
896 } 523 }
897 /* End Profile */ 524 /* End Profile */
898 525
@@ -903,13 +530,11 @@ ul, li { @@ -903,13 +530,11 @@ ul, li {
903 530
904 .bottom-menu { 531 .bottom-menu {
905 position: fixed; 532 position: fixed;
906 - bottom: 0px;  
907 - background: #F5F5F5; 533 + bottom: 0px;
908 width: 100%; 534 width: 100%;
909 padding: 0px 30px; 535 padding: 0px 30px;
910 z-index: 999; 536 z-index: 999;
911 height: 50px; 537 height: 50px;
912 - background: #26A69A;  
913 } 538 }
914 539
915 .mobile-menu { 540 .mobile-menu {
@@ -921,65 +546,61 @@ ul, li { @@ -921,65 +546,61 @@ ul, li {
921 } 546 }
922 547
923 .mobile-menu .item { 548 .mobile-menu .item {
924 - color: #FFFFFF;  
925 - background: #26A69A;  
926 padding-top: 3px; 549 padding-top: 3px;
927 text-align: center; 550 text-align: center;
928 height: 50px; 551 height: 50px;
929 width: 55px; 552 width: 55px;
930 font-size: 35px; 553 font-size: 35px;
931 } 554 }
932 -  
933 -.mobile-menu .item a{  
934 - color: white;  
935 -}  
936 -  
937 -.mobile-menu > .subjects_menu_active {  
938 - background-color: #00695C;  
939 -}  
940 -  
941 -.mobile-menu > .item:hover{  
942 - background-color: #00695C;  
943 -}  
944 /* End Bottom Menu */ 555 /* End Bottom Menu */
945 556
946 -  
947 -  
948 /* subjects app starts*/ 557 /* subjects app starts*/
949 -  
950 -.access-subject{  
951 - background-color: #2eb82e !important;  
952 - color: white;  
953 - border: none; 558 +.access-subject {
  559 + border: none;
954 } 560 }
955 561
956 -.subscribe-subject{  
957 - background-color: #33cc33 !important;  
958 - color:white;  
959 - border:none; 562 +.subscribe-subject {
  563 + border:none;
960 } 564 }
961 -  
962 -  
963 /* subjects app ends */ 565 /* subjects app ends */
964 566
965 /* Themes */ 567 /* Themes */
966 .page_selector h4 { 568 .page_selector h4 {
967 margin-bottom: 20px; 569 margin-bottom: 20px;
968 - border-bottom: 1px solid #e5e5e5;  
969 } 570 }
970 .page_selector:hover, .page_selector:focus { 571 .page_selector:hover, .page_selector:focus {
971 text-decoration: none; 572 text-decoration: none;
972 } 573 }
973 574
974 -.filedrag{ 575 +.filedrag {
975 display: none; 576 display: none;
976 font-weight: bold; 577 font-weight: bold;
977 text-align: center; 578 text-align: center;
978 padding: 1em 0; 579 padding: 1em 0;
979 margin: 1em 0; 580 margin: 1em 0;
980 - color: #555;  
981 - border: 2px dashed #555;  
982 border-radius: 7px; 581 border-radius: 7px;
983 cursor: pointer; 582 cursor: pointer;
984 } 583 }
985 -/* End Themes */  
986 \ No newline at end of file 584 \ No newline at end of file
  585 +
  586 +.theme_img {
  587 + width: 100%;
  588 +}
  589 +/* End Themes */
  590 +
  591 +.footer {
  592 + position: relative;
  593 + bottom: 0px;
  594 + padding: 30px 30px;
  595 + width: 100%;
  596 + margin-top: 15px;
  597 + font-family: Roboto;
  598 + font-size: 16px;
  599 +}
  600 +.footer p {
  601 + margin: 0px;
  602 +}
  603 +
  604 +.form-group input[type=file] {
  605 + margin-top: 20px;
  606 + height: initial;
  607 +}
987 \ No newline at end of file 608 \ No newline at end of file
amadeus/static/css/themes/black.css 0 → 100644
@@ -0,0 +1,270 @@ @@ -0,0 +1,270 @@
  1 +body .container .jumbotron-inverse, body .container .well-inverse, body .container-fluid .jumbotron-inverse, body .container-fluid .well-inverse {
  2 + background-color: white;
  3 +}
  4 +
  5 +a, a:focus, a:hover {
  6 + color: #444444;
  7 +}
  8 +
  9 +.radio input[type=radio]:checked~.check, label.radio-inline input[type=radio]:checked~.check {
  10 + background-color: #444444;
  11 +}
  12 +
  13 +.radio input[type=radio]:checked~.circle, label.radio-inline input[type=radio]:checked~.circle {
  14 + border-color: #444444;
  15 +}
  16 +
  17 +.pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus {
  18 + color: #fff;
  19 + background-color: #337ab7;
  20 + border-color: #337ab7;
  21 +}
  22 +
  23 +.navbar, .navbar.navbar-default {
  24 + background-color: #444444;
  25 + color: rgba(255,255,255,.84);
  26 +}
  27 +
  28 +.my-subjects-title {
  29 + color: #555555;
  30 +}
  31 +
  32 +#sidebar-menu .item {
  33 + background-color: #555555;
  34 + color: white;
  35 +}
  36 +
  37 +#sidebar-menu .item a{
  38 + color: white;
  39 +}
  40 +
  41 +#sidebar-menu > .subjects_menu_active {
  42 + background-color: #333333;
  43 +}
  44 +
  45 +#sidebar-menu > .item:hover{
  46 + background-color: #333333;
  47 +}
  48 +
  49 +.panel-invisible{
  50 + background-color: #BDBDBD !important;
  51 + color: #F5F5F5;
  52 +}
  53 +
  54 +.category-panel > .panel-heading {
  55 + background-color: #666666 !important;
  56 +}
  57 +
  58 +.subject-panel > .panel-heading {
  59 + background-color: #777777 !important;
  60 +}
  61 +
  62 +.category-header i {
  63 + color: white;
  64 +}
  65 +
  66 +.category-header i:hover{
  67 + color: #90CAF9;
  68 +}
  69 +
  70 +.category-header .dropdown-menu i {
  71 + color: inherit;
  72 +}
  73 +
  74 +#create-category {
  75 + background-color: #66BB6A;
  76 + color: #FFFFFF;
  77 +}
  78 +
  79 +.category-panel-content {
  80 + background: #F5F5F5;
  81 +}
  82 +
  83 +.core-subjects-options li {
  84 + background-color: #FFFFFF;
  85 + border-bottom-color: #D2D2D2;
  86 + color: #A0A0A0;
  87 +}
  88 +
  89 +.core-subjects-options li.active {
  90 + color: inherit;
  91 + border-bottom-color: #333333;
  92 +}
  93 +
  94 +.create-subject-btn {
  95 + background-color: #000000;
  96 + color: white;
  97 +}
  98 +
  99 +#coordinators_accordion .panel-heading, #professors_accordion .panel-heading {
  100 + background: #FFFFFF;
  101 +}
  102 +
  103 +.navbar-brand:hover {
  104 + background: #333333 !important;
  105 +}
  106 +
  107 +.navbar .project_name {
  108 + color: white;
  109 +}
  110 +
  111 +.navbar-nav li.open {
  112 + background: #333333;
  113 +}
  114 +
  115 +.navbar-nav li > a:hover {
  116 + background: #333333 !important;
  117 +}
  118 +
  119 +.navbar-nav li.settings_menu_active {
  120 + background: #333333
  121 +}
  122 +
  123 +.top-search {
  124 + color: #F5F5F5;
  125 +}
  126 +
  127 +#btn-search:hover {
  128 + background: #333333;
  129 +}
  130 +
  131 +.dropdown-menu {
  132 + background: #F5F5F5;
  133 +}
  134 +
  135 +.dropdown-menu li > a {
  136 + background: #F5F5F5;
  137 + color: #333333;
  138 +}
  139 +
  140 +.dropdown-menu li > a:hover {
  141 + background: #EEEEEE !important;
  142 +}
  143 +
  144 +#system_accordion > .panel > .panel-heading {
  145 + background: #F5F5F5;
  146 +}
  147 +
  148 +#system_accordion > .panel > .panel-heading:hover {
  149 + background: #EEEEEE;
  150 +}
  151 +
  152 +#system_accordion > .panel > .panel-heading > a > .panel-title {
  153 + color: #333333;
  154 +}
  155 +
  156 +#system_accordion > .panel > .panel-heading > a > .panel-title:hover {
  157 + color: #444444;
  158 +}
  159 +
  160 +#system_accordion > .panel > .panel-heading > a:hover {
  161 + color: #444444;
  162 +}
  163 +
  164 +#system_menu {
  165 + background: #F5F5F5;
  166 +}
  167 +
  168 +.modal-header {
  169 + border-bottom: 1px solid #E6E7E8 !important;
  170 +}
  171 +
  172 +.modal-footer {
  173 + border-top: 1px solid #E6E7E8 !important;
  174 +}
  175 +
  176 +#horizontal-line{
  177 + background-color: black;
  178 +}
  179 +
  180 +.breadcrumb > li > span.divider {
  181 + color: #000000;
  182 +}
  183 +
  184 +.breadcrumb > li > a{
  185 + color: #000000;
  186 +}
  187 +
  188 +.breadcrumb > li {
  189 + color: #BDBDBD;
  190 +}
  191 +
  192 +.panel-title{ /*Because we use an outer a tag*/
  193 + color: rgba(255,255,255,.84);
  194 +}
  195 +
  196 +.accordion {
  197 + background: white;
  198 +}
  199 +
  200 +.accordion_list {
  201 + background: #F5F5F5;
  202 +}
  203 +
  204 +.outside-title {
  205 + color: #43a251;
  206 +}
  207 +
  208 +.titleTopic a h4, .titleTopic h4 {
  209 + color: white;
  210 +}
  211 +
  212 +.Topic-detail a h4{
  213 + color: black;
  214 +}
  215 +
  216 +.cards-detail .panel .panel-heading h4 {
  217 + color:black;
  218 +}
  219 +
  220 +.data_register_course p {
  221 + color: grey;
  222 +}
  223 +
  224 +.category-course-link {
  225 + color: #FFFFFF !important;
  226 +}
  227 +
  228 +.profile_function {
  229 + border-bottom: 1px solid #D2D2D2;
  230 +}
  231 +
  232 +.bottom-menu {
  233 + background: #000000;
  234 +}
  235 +
  236 +.mobile-menu .item {
  237 + color: #FFFFFF;
  238 + background: #000000;
  239 +}
  240 +
  241 +.mobile-menu .item a {
  242 + color: white;
  243 +}
  244 +
  245 +.mobile-menu > .subjects_menu_active {
  246 + background-color: #333333;
  247 +}
  248 +
  249 +.mobile-menu > .item:hover{
  250 + background-color: #333333;
  251 +}
  252 +
  253 +.access-subject {
  254 + background-color: #2eb82e !important;
  255 + color: white;
  256 +}
  257 +
  258 +.page_selector h4 {
  259 + border-bottom: 1px solid #e5e5e5;
  260 +}
  261 +
  262 +.subscribe-subject {
  263 + background-color: #33cc33 !important;
  264 + color:white;
  265 +}
  266 +
  267 +.filedrag {
  268 + color: #555;
  269 + border: 2px dashed #555;
  270 +}
0 \ No newline at end of file 271 \ No newline at end of file
amadeus/static/css/themes/green.css 0 → 100644
@@ -0,0 +1,275 @@ @@ -0,0 +1,275 @@
  1 +body .container .jumbotron-inverse, body .container .well-inverse, body .container-fluid .jumbotron-inverse, body .container-fluid .well-inverse {
  2 + background-color: white;
  3 +}
  4 +
  5 +a, a:focus, a:hover {
  6 + color: #009688;
  7 +}
  8 +
  9 +.radio input[type=radio]:checked~.check, label.radio-inline input[type=radio]:checked~.check {
  10 + background-color: #009688;
  11 +}
  12 +
  13 +.radio input[type=radio]:checked~.circle, label.radio-inline input[type=radio]:checked~.circle {
  14 + border-color: #009688;
  15 +}
  16 +
  17 +.pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus {
  18 + color: #fff;
  19 + background-color: #337ab7;
  20 + border-color: #337ab7;
  21 +}
  22 +
  23 +.navbar, .navbar.navbar-default {
  24 + background-color: #009688;
  25 + color: rgba(255,255,255,.84);
  26 +}
  27 +
  28 +.my-subjects-title {
  29 + color: #26A69A;
  30 +}
  31 +
  32 +#sidebar-menu .item {
  33 + background-color: #26A69A;
  34 + color: white;
  35 +}
  36 +
  37 +#sidebar-menu .item a{
  38 + color: white;
  39 +}
  40 +
  41 +#sidebar-menu > .subjects_menu_active {
  42 + background-color: #00695C;
  43 +}
  44 +
  45 +#sidebar-menu > .item:hover{
  46 + background-color: #00695C;
  47 +}
  48 +
  49 +.panel-invisible{
  50 + background-color: #BDBDBD !important;
  51 + color: #F5F5F5;
  52 +}
  53 +
  54 +.category-panel > .panel-heading {
  55 + background-color: #0277BD !important;
  56 +}
  57 +
  58 +.subject-panel > .panel-heading {
  59 + background-color: #039BE5 !important;
  60 +}
  61 +
  62 +.category-header i {
  63 + color: white;
  64 +}
  65 +
  66 +.category-header i:hover{
  67 + color: #90CAF9;
  68 +}
  69 +
  70 +.category-header .dropdown-menu i {
  71 + color: inherit;
  72 +}
  73 +
  74 +#create-category {
  75 + background-color: #66BB6A;
  76 + color: #FFFFFF;
  77 +}
  78 +
  79 +.category-panel-content {
  80 + background: #F5F5F5;
  81 +}
  82 +
  83 +.core-subjects-options li {
  84 + background-color: #FFFFFF;
  85 + border-bottom-color: #D2D2D2;
  86 + color: #A0A0A0;
  87 +}
  88 +
  89 +.core-subjects-options li.active {
  90 + color: inherit;
  91 + border-bottom-color: #00695C;
  92 +}
  93 +
  94 +.create-subject-btn {
  95 + background-color: #26A69A;
  96 + color: white;
  97 +}
  98 +
  99 +#coordinators_accordion .panel-heading, #professors_accordion .panel-heading {
  100 + background: #FFFFFF;
  101 +}
  102 +
  103 +.navbar-brand:hover {
  104 + background: #00695C !important;
  105 +}
  106 +
  107 +.navbar .project_name {
  108 + color: white;
  109 +}
  110 +
  111 +.navbar-nav li.open {
  112 + background: #00695C;
  113 +}
  114 +
  115 +.navbar-nav li > a:hover {
  116 + background: #00695C !important;
  117 +}
  118 +
  119 +.navbar-nav li.settings_menu_active {
  120 + background: #00695C
  121 +}
  122 +
  123 +.top-search {
  124 + color: #F5F5F5;
  125 +}
  126 +
  127 +#btn-search:hover {
  128 + background: #00695C;
  129 +}
  130 +
  131 +.dropdown-menu {
  132 + background: #F5F5F5;
  133 +}
  134 +
  135 +.dropdown-menu li > a {
  136 + background: #F5F5F5;
  137 + color: #333333;
  138 +}
  139 +
  140 +.dropdown-menu li > a:hover {
  141 + background: #EEEEEE !important;
  142 +}
  143 +
  144 +#system_accordion > .panel > .panel-heading {
  145 + background: #F5F5F5;
  146 +}
  147 +
  148 +#system_accordion > .panel > .panel-heading:hover {
  149 + background: #EEEEEE;
  150 +}
  151 +
  152 +#system_accordion > .panel > .panel-heading > a > .panel-title {
  153 + color: #333333;
  154 +}
  155 +
  156 +#system_accordion > .panel > .panel-heading > a > .panel-title:hover {
  157 + color: #009688;
  158 +}
  159 +
  160 +#system_accordion > .panel > .panel-heading > a:hover {
  161 + color: #009688;
  162 +}
  163 +
  164 +#system_menu {
  165 + background: #F5F5F5;
  166 +}
  167 +
  168 +.modal-header {
  169 + border-bottom: 1px solid #E6E7E8 !important;
  170 +}
  171 +
  172 +.modal-footer {
  173 + border-top: 1px solid #E6E7E8 !important;
  174 +}
  175 +
  176 +#horizontal-line{
  177 + background-color: black;
  178 +}
  179 +
  180 +.breadcrumb > li > span.divider {
  181 + color: #26A69A;
  182 +}
  183 +
  184 +.breadcrumb > li > a{
  185 + color: #26A69A;
  186 +}
  187 +
  188 +.breadcrumb > li {
  189 + color: #BDBDBD;
  190 +}
  191 +
  192 +.panel-title{ /*Because we use an outer a tag*/
  193 + color: rgba(255,255,255,.84);
  194 +}
  195 +
  196 +.accordion {
  197 + background: white;
  198 +}
  199 +
  200 +.accordion_list {
  201 + background: #F5F5F5;
  202 +}
  203 +
  204 +.outside-title {
  205 + color: #43a251;
  206 +}
  207 +
  208 +.titleTopic a h4, .titleTopic h4 {
  209 + color: white;
  210 +}
  211 +
  212 +.Topic-detail a h4{
  213 + color: black;
  214 +}
  215 +
  216 +.cards-detail .panel .panel-heading h4 {
  217 + color:black;
  218 +}
  219 +
  220 +.data_register_course p {
  221 + color: grey;
  222 +}
  223 +
  224 +.category-course-link {
  225 + color: #FFFFFF !important;
  226 +}
  227 +
  228 +.profile_function {
  229 + border-bottom: 1px solid #D2D2D2;
  230 +}
  231 +
  232 +.bottom-menu {
  233 + background: #26A69A;
  234 +}
  235 +
  236 +.mobile-menu .item {
  237 + color: #FFFFFF;
  238 + background: #26A69A;
  239 +}
  240 +
  241 +.mobile-menu .item a {
  242 + color: white;
  243 +}
  244 +
  245 +.mobile-menu > .subjects_menu_active {
  246 + background-color: #00695C;
  247 +}
  248 +
  249 +.mobile-menu > .item:hover{
  250 + background-color: #00695C;
  251 +}
  252 +
  253 +.access-subject {
  254 + background-color: #2eb82e !important;
  255 + color: white;
  256 +}
  257 +
  258 +.page_selector h4 {
  259 + border-bottom: 1px solid #e5e5e5;
  260 +}
  261 +
  262 +.subscribe-subject {
  263 + background-color: #33cc33 !important;
  264 + color:white;
  265 +}
  266 +
  267 +.filedrag {
  268 + color: #555;
  269 + border: 2px dashed #555;
  270 +}
  271 +
  272 +.footer {
  273 + color: #FFFFFF;
  274 + background: #26A69A;
  275 +}
0 \ No newline at end of file 276 \ No newline at end of file
amadeus/static/css/themes/red.css 0 → 100644
@@ -0,0 +1,270 @@ @@ -0,0 +1,270 @@
  1 +body .container .jumbotron-inverse, body .container .well-inverse, body .container-fluid .jumbotron-inverse, body .container-fluid .well-inverse {
  2 + background-color: white;
  3 +}
  4 +
  5 +a, a:focus, a:hover {
  6 + color: #7B241C;
  7 +}
  8 +
  9 +.radio input[type=radio]:checked~.check, label.radio-inline input[type=radio]:checked~.check {
  10 + background-color: #7B241C;
  11 +}
  12 +
  13 +.radio input[type=radio]:checked~.circle, label.radio-inline input[type=radio]:checked~.circle {
  14 + border-color: #7B241C;
  15 +}
  16 +
  17 +.pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus {
  18 + color: #fff;
  19 + background-color: #337ab7;
  20 + border-color: #337ab7;
  21 +}
  22 +
  23 +.navbar, .navbar.navbar-default {
  24 + background-color: #7B241C;
  25 + color: rgba(255,255,255,.84);
  26 +}
  27 +
  28 +.my-subjects-title {
  29 + color: #B03A2E;
  30 +}
  31 +
  32 +#sidebar-menu .item {
  33 + background-color: #B03A2E;
  34 + color: white;
  35 +}
  36 +
  37 +#sidebar-menu .item a{
  38 + color: white;
  39 +}
  40 +
  41 +#sidebar-menu > .subjects_menu_active {
  42 + background-color: #641E16;
  43 +}
  44 +
  45 +#sidebar-menu > .item:hover{
  46 + background-color: #641E16;
  47 +}
  48 +
  49 +.panel-invisible{
  50 + background-color: #BDBDBD !important;
  51 + color: #F5F5F5;
  52 +}
  53 +
  54 +.category-panel > .panel-heading {
  55 + background-color: #666666 !important;
  56 +}
  57 +
  58 +.subject-panel > .panel-heading {
  59 + background-color: #777777 !important;
  60 +}
  61 +
  62 +.category-header i {
  63 + color: white;
  64 +}
  65 +
  66 +.category-header i:hover{
  67 + color: #90CAF9;
  68 +}
  69 +
  70 +.category-header .dropdown-menu i {
  71 + color: inherit;
  72 +}
  73 +
  74 +#create-category {
  75 + background-color: #66BB6A;
  76 + color: #FFFFFF;
  77 +}
  78 +
  79 +.category-panel-content {
  80 + background: #F5F5F5;
  81 +}
  82 +
  83 +.core-subjects-options li {
  84 + background-color: #FFFFFF;
  85 + border-bottom-color: #D2D2D2;
  86 + color: #A0A0A0;
  87 +}
  88 +
  89 +.core-subjects-options li.active {
  90 + color: inherit;
  91 + border-bottom-color: #641E16;
  92 +}
  93 +
  94 +.create-subject-btn {
  95 + background-color: #B03A2E;
  96 + color: white;
  97 +}
  98 +
  99 +#coordinators_accordion .panel-heading, #professors_accordion .panel-heading {
  100 + background: #FFFFFF;
  101 +}
  102 +
  103 +.navbar-brand:hover {
  104 + background: #641E16 !important;
  105 +}
  106 +
  107 +.navbar .project_name {
  108 + color: white;
  109 +}
  110 +
  111 +.navbar-nav li.open {
  112 + background: #641E16;
  113 +}
  114 +
  115 +.navbar-nav li > a:hover {
  116 + background: #641E16 !important;
  117 +}
  118 +
  119 +.navbar-nav li.settings_menu_active {
  120 + background: #641E16;
  121 +}
  122 +
  123 +.top-search {
  124 + color: #F5F5F5;
  125 +}
  126 +
  127 +#btn-search:hover {
  128 + background: #641E16;
  129 +}
  130 +
  131 +.dropdown-menu {
  132 + background: #F5F5F5;
  133 +}
  134 +
  135 +.dropdown-menu li > a {
  136 + background: #F5F5F5;
  137 + color: #333333;
  138 +}
  139 +
  140 +.dropdown-menu li > a:hover {
  141 + background: #EEEEEE !important;
  142 +}
  143 +
  144 +#system_accordion > .panel > .panel-heading {
  145 + background: #F5F5F5;
  146 +}
  147 +
  148 +#system_accordion > .panel > .panel-heading:hover {
  149 + background: #EEEEEE;
  150 +}
  151 +
  152 +#system_accordion > .panel > .panel-heading > a > .panel-title {
  153 + color: #333333;
  154 +}
  155 +
  156 +#system_accordion > .panel > .panel-heading > a > .panel-title:hover {
  157 + color: #7B241C;
  158 +}
  159 +
  160 +#system_accordion > .panel > .panel-heading > a:hover {
  161 + color: #7B241C;
  162 +}
  163 +
  164 +#system_menu {
  165 + background: #F5F5F5;
  166 +}
  167 +
  168 +.modal-header {
  169 + border-bottom: 1px solid #E6E7E8 !important;
  170 +}
  171 +
  172 +.modal-footer {
  173 + border-top: 1px solid #E6E7E8 !important;
  174 +}
  175 +
  176 +#horizontal-line{
  177 + background-color: black;
  178 +}
  179 +
  180 +.breadcrumb > li > span.divider {
  181 + color: #B03A2E;
  182 +}
  183 +
  184 +.breadcrumb > li > a{
  185 + color: #B03A2E;
  186 +}
  187 +
  188 +.breadcrumb > li {
  189 + color: #BDBDBD;
  190 +}
  191 +
  192 +.panel-title{ /*Because we use an outer a tag*/
  193 + color: rgba(255,255,255,.84);
  194 +}
  195 +
  196 +.accordion {
  197 + background: white;
  198 +}
  199 +
  200 +.accordion_list {
  201 + background: #F5F5F5;
  202 +}
  203 +
  204 +.outside-title {
  205 + color: #43a251;
  206 +}
  207 +
  208 +.titleTopic a h4, .titleTopic h4 {
  209 + color: white;
  210 +}
  211 +
  212 +.Topic-detail a h4{
  213 + color: black;
  214 +}
  215 +
  216 +.cards-detail .panel .panel-heading h4 {
  217 + color:black;
  218 +}
  219 +
  220 +.data_register_course p {
  221 + color: grey;
  222 +}
  223 +
  224 +.category-course-link {
  225 + color: #FFFFFF !important;
  226 +}
  227 +
  228 +.profile_function {
  229 + border-bottom: 1px solid #D2D2D2;
  230 +}
  231 +
  232 +.bottom-menu {
  233 + background: #B03A2E;
  234 +}
  235 +
  236 +.mobile-menu .item {
  237 + color: #FFFFFF;
  238 + background: #B03A2E;
  239 +}
  240 +
  241 +.mobile-menu .item a {
  242 + color: white;
  243 +}
  244 +
  245 +.mobile-menu > .subjects_menu_active {
  246 + background-color: #641E16;
  247 +}
  248 +
  249 +.mobile-menu > .item:hover{
  250 + background-color: #641E16;
  251 +}
  252 +
  253 +.access-subject {
  254 + background-color: #2eb82e !important;
  255 + color: white;
  256 +}
  257 +
  258 +.page_selector h4 {
  259 + border-bottom: 1px solid #e5e5e5;
  260 +}
  261 +
  262 +.subscribe-subject {
  263 + background-color: #33cc33 !important;
  264 + color:white;
  265 +}
  266 +
  267 +.filedrag {
  268 + color: #555;
  269 + border: 2px dashed #555;
  270 +}
0 \ No newline at end of file 271 \ No newline at end of file
amadeus/static/img/amadeus.png

105 KB

amadeus/static/img/favicon_amadeus.png 0 → 100755

47.7 KB

amadeus/static/img/logo_grande_amadeus.png 0 → 100755

105 KB

amadeus/static/img/logo_pequena_amadeus.png 0 → 100755

990 Bytes

amadeus/static/img/themes/black.png 0 → 100644

69 KB

amadeus/static/img/themes/green.png 0 → 100644

69.3 KB

amadeus/static/img/themes/red.png 0 → 100644

71.4 KB

amadeus/static/img/topo-amadeus-white.png

990 Bytes

amadeus/static/img/topo-amadeus.png

47.7 KB

amadeus/static/js/themes.js
@@ -8,10 +8,12 @@ if (window.File && window.FileList && window.FileReader) { @@ -8,10 +8,12 @@ if (window.File && window.FileList && window.FileReader) {
8 function Init() { 8 function Init() {
9 var small = $("#id_small_logo"), 9 var small = $("#id_small_logo"),
10 large = $("#id_large_logo"), 10 large = $("#id_large_logo"),
  11 + fav = $("#id_favicon"),
11 filedrag = $(".filedrag"), 12 filedrag = $(".filedrag"),
12 common = $(".common-file-input"); 13 common = $(".common-file-input");
13 14
14 // file select 15 // file select
  16 + fav.on("change", FileSelectHandler);
15 small.on("change", FileSelectHandler); 17 small.on("change", FileSelectHandler);
16 large.on("change", FileSelectHandler); 18 large.on("change", FileSelectHandler);
17 19
amadeus/templates/base.html
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 2
3 -{% load static i18n %}  
4 -{% load static i18n permission_tags django_bootstrap_breadcrumbs %} 3 +{% load static i18n django_bootstrap_breadcrumbs %}
5 {% get_current_language as LANGUAGE_CODE %} 4 {% get_current_language as LANGUAGE_CODE %}
6 5
7 <html> 6 <html>
8 <head> 7 <head>
9 - <title>{{ title }} | Amadeus</title> 8 + <title>{{ title }} | {{ theme.title }}</title>
10 9
11 <!-- jQuery & jQuery UI --> 10 <!-- jQuery & jQuery UI -->
12 <script type="text/javascript" src="{% static 'js/jquery-3.1.0.min.js' %}"></script> 11 <script type="text/javascript" src="{% static 'js/jquery-3.1.0.min.js' %}"></script>
13 <script type="text/javascript" src="{% static 'js/jquery-ui.js' %}"></script> 12 <script type="text/javascript" src="{% static 'js/jquery-ui.js' %}"></script>
14 13
15 <meta http-equiv="Cache-Control" content="no-cache, no-store" /> 14 <meta http-equiv="Cache-Control" content="no-cache, no-store" />
16 - <link href="{% static 'img/topo-amadeus.png' %}" rel="shortcut icon" /> 15 + <link href="{{ theme.favicon }}" rel="shortcut icon" />
17 <!-- Roboto font --> 16 <!-- Roboto font -->
18 <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:300,400,500,700" type="text/css"> 17 <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:300,400,500,700" type="text/css">
19 <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> 18 <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
@@ -47,6 +46,7 @@ @@ -47,6 +46,7 @@
47 <!-- Custom styles --> 46 <!-- Custom styles -->
48 <link rel="stylesheet" type="text/css" href="{% static 'css/base/amadeus_responsive.css' %}"> 47 <link rel="stylesheet" type="text/css" href="{% static 'css/base/amadeus_responsive.css' %}">
49 <link rel="stylesheet" type="text/css" href="{% static 'css/base/amadeus.css' %}"> 48 <link rel="stylesheet" type="text/css" href="{% static 'css/base/amadeus.css' %}">
  49 +
50 50
51 <!--Javascript block for specific-app ones --> 51 <!--Javascript block for specific-app ones -->
52 <script src="{% static 'js/base/amadeus.js' %}"></script> 52 <script src="{% static 'js/base/amadeus.js' %}"></script>
@@ -59,6 +59,9 @@ @@ -59,6 +59,9 @@
59 <!-- Summernote --> 59 <!-- Summernote -->
60 <script src="{% static 'summernote/summernote.js' %}" type="text/javascript"></script> 60 <script src="{% static 'summernote/summernote.js' %}" type="text/javascript"></script>
61 <link href="{% static 'summernote/summernote.css' %}" type="text/css" rel="stylesheet" /> 61 <link href="{% static 'summernote/summernote.css' %}" type="text/css" rel="stylesheet" />
  62 + {% with 'css/themes/'|add:theme.css_style|add:'.css' as theme_selected %}
  63 + <link rel="stylesheet" type="text/css" href="{% static theme_selected %}">
  64 + {% endwith %}
62 65
63 </head> 66 </head>
64 <body> 67 <body>
@@ -71,8 +74,8 @@ @@ -71,8 +74,8 @@
71 <span class="icon-bar"></span> 74 <span class="icon-bar"></span>
72 </button> 75 </button>
73 <a class="navbar-brand" href="{% url 'subjects:home' %}"> 76 <a class="navbar-brand" href="{% url 'subjects:home' %}">
74 - <img class="logo pull-left" src="{% static 'img/topo-amadeus-white.png' %}" alt="Logo" />  
75 - <span class="pull-right project_name">Projeto Amadeus</span> 77 + <img class="logo pull-left" src="{{ theme.small_logo_url }}" alt="Logo" />
  78 + <span class="pull-right project_name">{{ theme.title }}</span>
76 </a> 79 </a>
77 </div> 80 </div>
78 <div class="navbar-collapse collapse navbar-responsive-collapse"> 81 <div class="navbar-collapse collapse navbar-responsive-collapse">
@@ -184,6 +187,9 @@ @@ -184,6 +187,9 @@
184 </div> 187 </div>
185 </div> 188 </div>
186 189
  190 + {% block footer %}
  191 + {% endblock %}
  192 +
187 {% block bottommenu %} 193 {% block bottommenu %}
188 <div class="clearfix visible-xs visible-sm"></div> 194 <div class="clearfix visible-xs visible-sm"></div>
189 <div class="bottom-menu visible-xs visible-sm"> 195 <div class="bottom-menu visible-xs visible-sm">
mailsender/templates/mailsender/update.html
@@ -16,6 +16,12 @@ @@ -16,6 +16,12 @@
16 <form method="post" action="" enctype="multipart/form-data"> 16 <form method="post" action="" enctype="multipart/form-data">
17 {% csrf_token %} 17 {% csrf_token %}
18 <legend>{% trans 'General server settings' %}</legend> 18 <legend>{% trans 'General server settings' %}</legend>
  19 + <em>
  20 + {% trans 'If your email host is Gmail make sure to turn on the option "Allow less secure apps" in' %}:
  21 + <b><a href="https://www.google.com/settings/security/lesssecureapps">https://www.google.com/settings/security/lesssecureapps</a></b>
  22 + </em>
  23 + <br clear="all" />
  24 + <br clear="all" />
19 {% for field in form %} 25 {% for field in form %}
20 {% if field.auto_id == 'id_username' %} 26 {% if field.auto_id == 'id_username' %}
21 <br clear="all" /> 27 <br clear="all" />
security/migrations/0003_auto_20170112_1408.py 0 → 100644
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
  1 +# -*- coding: utf-8 -*-
  2 +# Generated by Django 1.10 on 2017-01-12 17:08
  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 + ('security', '0002_auto_20170110_1807'),
  12 + ]
  13 +
  14 + operations = [
  15 + migrations.AlterField(
  16 + model_name='security',
  17 + name='maintence',
  18 + field=models.BooleanField(default=False, verbose_name='Put system in maintenance mode'),
  19 + ),
  20 + ]
subjects/migrations/0012_auto_20170112_1408.py 0 → 100644
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
  1 +# -*- coding: utf-8 -*-
  2 +# Generated by Django 1.10 on 2017-01-12 17:08
  3 +from __future__ import unicode_literals
  4 +
  5 +from django.db import migrations
  6 +
  7 +
  8 +class Migration(migrations.Migration):
  9 +
  10 + dependencies = [
  11 + ('subjects', '0011_auto_20170110_1446'),
  12 + ]
  13 +
  14 + operations = [
  15 + migrations.AlterModelOptions(
  16 + name='subject',
  17 + options={'ordering': ['name'], 'verbose_name': 'Subject', 'verbose_name_plural': 'Subjects'},
  18 + ),
  19 + ]
themes/forms.py
@@ -4,10 +4,47 @@ from django import forms @@ -4,10 +4,47 @@ from django import forms
4 from .models import Themes 4 from .models import Themes
5 5
6 class BasicElemetsForm(forms.ModelForm): 6 class BasicElemetsForm(forms.ModelForm):
  7 + MAX_UPLOAD_SIZE = 2*1024*1024
  8 +
  9 + def clean_favicon(self):
  10 + image = self.cleaned_data.get('favicon', False)
  11 +
  12 + if image:
  13 + if hasattr(image, '_size'):
  14 + if image._size > self.MAX_UPLOAD_SIZE:
  15 + self._errors['favicon'] = [_("The image is too large. It should have less than 2MB.")]
  16 +
  17 + return ValueError
  18 +
  19 + return image
  20 +
  21 + def clean_small_logo(self):
  22 + image = self.cleaned_data.get('small_logo', False)
  23 +
  24 + if image:
  25 + if hasattr(image, '_size'):
  26 + if image._size > self.MAX_UPLOAD_SIZE:
  27 + self._errors['small_logo'] = [_("The image is too large. It should have less than 2MB.")]
  28 +
  29 + return ValueError
  30 +
  31 + return image
  32 +
  33 + def clean_large_logo(self):
  34 + image = self.cleaned_data.get('large_logo', False)
  35 +
  36 + if image:
  37 + if hasattr(image, '_size'):
  38 + if image._size > self.MAX_UPLOAD_SIZE:
  39 + self._errors['large_logo'] = [_("The image is too large. It should have less than 2MB.")]
  40 +
  41 + return ValueError
  42 +
  43 + return image
7 44
8 class Meta: 45 class Meta:
9 model = Themes 46 model = Themes
10 - fields = ['title', 'small_logo', 'large_logo', 'footer_note'] 47 + fields = ['title', 'favicon', 'small_logo', 'large_logo', 'footer_note']
11 48
12 class CSSStyleForm(forms.ModelForm): 49 class CSSStyleForm(forms.ModelForm):
13 50
themes/migrations/0003_auto_20170112_1408.py 0 → 100644
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
  1 +# -*- coding: utf-8 -*-
  2 +# Generated by Django 1.10 on 2017-01-12 17:08
  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 + ('themes', '0002_auto_20170110_1809'),
  12 + ]
  13 +
  14 + operations = [
  15 + migrations.AlterField(
  16 + model_name='themes',
  17 + name='css_style',
  18 + field=models.CharField(choices=[('green', 'Green'), ('red', 'Red'), ('black', 'Black')], default='green', max_length=50, verbose_name='Css Style'),
  19 + ),
  20 + ]
themes/migrations/0004_themes_favicon.py 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +# -*- coding: utf-8 -*-
  2 +# Generated by Django 1.10 on 2017-01-12 20:42
  3 +from __future__ import unicode_literals
  4 +
  5 +from django.db import migrations, models
  6 +import themes.models
  7 +
  8 +
  9 +class Migration(migrations.Migration):
  10 +
  11 + dependencies = [
  12 + ('themes', '0003_auto_20170112_1408'),
  13 + ]
  14 +
  15 + operations = [
  16 + migrations.AddField(
  17 + model_name='themes',
  18 + name='favicon',
  19 + field=models.ImageField(blank=True, default='favicon_amadeus.png', upload_to='themes/', validators=[themes.models.validate_img_extension], verbose_name='Favicon'),
  20 + ),
  21 + ]
themes/models.py
1 from django.db import models 1 from django.db import models
2 from django.utils.translation import ugettext_lazy as _ 2 from django.utils.translation import ugettext_lazy as _
  3 +from django.contrib.staticfiles.templatetags.staticfiles import static
3 4
4 def validate_img_extension(value): 5 def validate_img_extension(value):
5 valid_formats = ['image/jpeg','image/x-citrix-jpeg','image/png','image/x-citrix-png','image/x-png'] 6 valid_formats = ['image/jpeg','image/x-citrix-jpeg','image/png','image/x-citrix-png','image/x-png']
@@ -10,10 +11,11 @@ def validate_img_extension(value): @@ -10,10 +11,11 @@ def validate_img_extension(value):
10 11
11 class Themes(models.Model): 12 class Themes(models.Model):
12 title = models.CharField(_("Title"), max_length = 200, default = "Projeto Amadeus") 13 title = models.CharField(_("Title"), max_length = 200, default = "Projeto Amadeus")
  14 + favicon = models.ImageField(verbose_name = _("Favicon"), blank = True, upload_to = 'themes/', default = 'favicon_amadeus.png', validators = [validate_img_extension])
13 small_logo = models.ImageField(verbose_name = _("Small Logo"), blank = True, upload_to = 'themes/', default = 'logo_pequena_amadeus.png', validators = [validate_img_extension]) 15 small_logo = models.ImageField(verbose_name = _("Small Logo"), blank = True, upload_to = 'themes/', default = 'logo_pequena_amadeus.png', validators = [validate_img_extension])
14 large_logo = models.ImageField(verbose_name = _("Large Logo"), blank = True, upload_to = 'themes/', default = 'logo_grande_amadeus.png', validators = [validate_img_extension]) 16 large_logo = models.ImageField(verbose_name = _("Large Logo"), blank = True, upload_to = 'themes/', default = 'logo_grande_amadeus.png', validators = [validate_img_extension])
15 footer_note = models.TextField(_("Footer Note"), blank = True) 17 footer_note = models.TextField(_("Footer Note"), blank = True)
16 - css_style = models.CharField(_("Css Style"), max_length = 50, default = "green") 18 + css_style = models.CharField(_("Css Style"), max_length = 50, default = "green", choices = (("green", _('Green')), ("red", _('Red')), ("black", _('Black'))))
17 19
18 class Meta: 20 class Meta:
19 verbose_name = _("Theme") 21 verbose_name = _("Theme")
@@ -21,3 +23,27 @@ class Themes(models.Model): @@ -21,3 +23,27 @@ class Themes(models.Model):
21 23
22 def __str__(self): 24 def __str__(self):
23 return self.title 25 return self.title
  26 +
  27 + @property
  28 + def favicon_url(self):
  29 + if self.favicon and hasattr(self.favicon, 'url'):
  30 + if self.favicon.url != 'favicon_amadeus.png':
  31 + return self.favicon.url
  32 +
  33 + return static('img/favicon_amadeus.png')
  34 +
  35 + @property
  36 + def small_logo_url(self):
  37 + if self.small_logo and hasattr(self.small_logo, 'url'):
  38 + if self.small_logo.url != 'logo_pequena_amadeus.png':
  39 + return self.small_logo.url
  40 +
  41 + return static('img/logo_pequena_amadeus.png')
  42 +
  43 + @property
  44 + def large_logo_url(self):
  45 + if self.large_logo and hasattr(self.large_logo, 'url'):
  46 + if self.large_logo.url != 'logo_grande_amadeus.png':
  47 + return self.large_logo.url
  48 +
  49 + return static('img/logo_grande_amadeus.png')
24 \ No newline at end of file 50 \ No newline at end of file
themes/templates/themes/basic_update.html
@@ -19,14 +19,14 @@ @@ -19,14 +19,14 @@
19 {% csrf_token %} 19 {% csrf_token %}
20 {% for field in form %} 20 {% for field in form %}
21 <div class="form-group{% if form.has_error %} has-error {% endif %} is-fileinput"> 21 <div class="form-group{% if form.has_error %} has-error {% endif %} is-fileinput">
22 - {% if field.auto_id == 'id_small_logo' or field.auto_id == 'id_large_logo' %} 22 + {% if field.auto_id == 'id_small_logo' or field.auto_id == 'id_large_logo' or field.auto_id == 'id_favicon' %}
23 {% if field.field.required %} 23 {% if field.field.required %}
24 <label for="{{ field.auto_id }}">{{ field.label }} <span>*</span></label> 24 <label for="{{ field.auto_id }}">{{ field.label }} <span>*</span></label>
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 - {% render_field field class='form-control' %} 29 + {% render_field field %}
30 30
31 <div class="input-group common-file-input"> 31 <div class="input-group common-file-input">
32 <input type="text" readonly="" class="form-control" placeholder="{% trans 'Choose your photo...' %}"> 32 <input type="text" readonly="" class="form-control" placeholder="{% trans 'Choose your photo...' %}">
@@ -36,7 +36,20 @@ @@ -36,7 +36,20 @@
36 </button> 36 </button>
37 </span> 37 </span>
38 </div> 38 </div>
39 - <div class="filedrag">{% trans 'Click or drop files here' %}</div> 39 + <div class="filedrag">
  40 + {% trans 'Click or drop files here' %}<br />
  41 +
  42 + {% trans 'Recommended dimensions' %}:
  43 +
  44 + {% if field.auto_id == 'id_small_logo' %}
  45 + 927px x 955px <br />
  46 + <small>{% trans 'It is recommended to be a white image' %}</small>
  47 + {% elif field.auto_id == 'id_favicon' %}
  48 + 927px x 955px
  49 + {% else %}
  50 + 1286px x 955px
  51 + {% endif %}
  52 + </div>
40 53
41 {% elif field.auto_id == 'id_footer_note' %} 54 {% elif field.auto_id == 'id_footer_note' %}
42 {% if field.field.required %} 55 {% if field.field.required %}
themes/templates/themes/css_update.html
@@ -0,0 +1,78 @@ @@ -0,0 +1,78 @@
  1 +{% extends 'themes/index.html' %}
  2 +
  3 +{% load static i18n %}
  4 +{% load widget_tweaks %}
  5 +{% load django_bootstrap_breadcrumbs %}
  6 +
  7 +{% block breadcrumbs %}
  8 + {{ block.super }}
  9 + {% breadcrumb 'CSS Selector' 'themes:css' %}
  10 +{% endblock %}
  11 +
  12 +{% block content %}
  13 + <div class="card">
  14 + <div class="card-content">
  15 + <div class="card-body">
  16 + <a href="{% url 'themes:basic' %}" class="page_selector"><h4><i class="fa fa-angle-right"></i> {% trans 'Basic Elements' %}</h4></a>
  17 + <a href="{% url 'themes:css' %}" class="page_selector"><h4><i class="fa fa-angle-down"></i> {% trans 'CSS Selector' %}</h4></a>
  18 +
  19 + <form method="post" action="" enctype="multipart/form-data">
  20 + {% csrf_token %}
  21 + {% for field in form %}
  22 + <div class="form-group{% if form.has_error %} has-error {% endif %} is-fileinput">
  23 + {% if field.field.required %}
  24 + <label for="{{ field.auto_id }}">{{ field.label }} <span>*</span></label>
  25 + {% else %}
  26 + <label for="{{ field.auto_id }}">{{ field.label }}</label>
  27 + {% endif %}
  28 +
  29 + <br clear="all" />
  30 +
  31 + {% for radio in field %}
  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">
  34 + <span class="radio">
  35 + {{ radio }}
  36 + </span>
  37 + </div>
  38 + <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
  39 + {% with 'img/themes/'|add:radio.choice_value|add:'.png' as img_presentation %}
  40 + <img class="radio theme_img" src="{% static img_presentation %}" />
  41 + {% endwith %}
  42 + </div>
  43 + <div class="col-md-2 col-md-2 col-sm-2 col-xs-2">
  44 + {% with 'css/themes/'|add:radio.choice_value|add:'.css' as doc_presentation %}
  45 + <a class="radio" href="{% static doc_presentation %}" target="blank">{% trans 'Documentation' %}</a>
  46 + {% endwith %}
  47 + </div>
  48 + </label>
  49 + <br clear="all" />
  50 + {% endfor %}
  51 + </div>
  52 +
  53 + <span id="helpBlock" class="help-block">{{ field.help_text }}</span>
  54 + {% if field.errors %}
  55 + <div class="alert alert-danger alert-dismissible" role="alert">
  56 + <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  57 + <span aria-hidden="true">&times;</span>
  58 + </button>
  59 + <ul>
  60 + {% for error in field.errors %}
  61 + <li>{{ error }}</li>
  62 + {% endfor %}
  63 + </ul>
  64 + </div>
  65 + {% endif %}
  66 + {% endfor %}
  67 + <div class="col-md-12 col-lg-12 col-sm-12 col-xs-12">
  68 + <div class="text-center">
  69 + <input type="submit" value="{% trans 'Save' %}" class="btn btn-raised btn-primary" />
  70 + </div>
  71 + </div>
  72 + </form>
  73 + </div>
  74 + </div>
  75 + </div>
  76 + <br clear="all" />
  77 + <br clear="all" />
  78 +{% endblock %}
0 \ No newline at end of file 79 \ No newline at end of file
users/templates/users/forgot_password.html
@@ -15,7 +15,7 @@ @@ -15,7 +15,7 @@
15 {% block content %} 15 {% block content %}
16 <div class="row"> 16 <div class="row">
17 <div class="col-lg-offset-1 col-md-offset-1"> 17 <div class="col-lg-offset-1 col-md-offset-1">
18 - <img src="{% static 'img/amadeus.png' %}" class="img-responsive center-block logo-login logo-register" alt="logo amadeus"> 18 + <img src="{{ theme.large_logo_url }}" class="img-responsive center-block logo-login logo-register" alt="logo amadeus">
19 </div> 19 </div>
20 </div> 20 </div>
21 21
users/templates/users/login.html
@@ -15,7 +15,7 @@ @@ -15,7 +15,7 @@
15 {% block content %} 15 {% block content %}
16 <div class="row"> 16 <div class="row">
17 <div class="col-lg-offset-1 col-md-offset-1"> 17 <div class="col-lg-offset-1 col-md-offset-1">
18 - <img src="{% static 'img/amadeus.png' %}" class="img-responsive center-block logo-login " alt="logo amadeus"> 18 + <img src="{{ theme.large_logo_url }}" class="img-responsive center-block logo-login " alt="logo amadeus">
19 </div> 19 </div>
20 </div> 20 </div>
21 21
@@ -56,22 +56,34 @@ @@ -56,22 +56,34 @@
56 </form> 56 </form>
57 <div class="row"> 57 <div class="row">
58 <div class="col-lg-10 col-md-10 col-sm-10 col-lg-offset-1 col-md-offset-1 col-sm-offset-1"> 58 <div class="col-lg-10 col-md-10 col-sm-10 col-lg-offset-1 col-md-offset-1 col-sm-offset-1">
59 - <div class="col-md-6 col-xs-6 col-sm-6 col-lg-6 text-center">  
60 - <button type="submite" class="btn btn-success btn-raised btn-block" form="form-login" style="position: initial;"> {% trans 'Log in' %} </button>  
61 - </div>  
62 {% if not deny_register %} 59 {% if not deny_register %}
63 <div class="col-md-6 col-xs-6 col-sm-6 col-lg-6 text-center"> 60 <div class="col-md-6 col-xs-6 col-sm-6 col-lg-6 text-center">
  61 + <button type="submite" class="btn btn-success btn-raised btn-block" form="form-login" style="position: initial;"> {% trans 'Log in' %} </button>
  62 + </div>
  63 + <div class="col-md-6 col-xs-6 col-sm-6 col-lg-6 text-center">
64 <a class="btn btn-default btn-raised btn-block" href="{% url 'users:signup' %}" formaction="#" style="position: initial;">{% trans 'Sign Up' %}</a> 64 <a class="btn btn-default btn-raised btn-block" href="{% url 'users:signup' %}" formaction="#" style="position: initial;">{% trans 'Sign Up' %}</a>
65 </div> 65 </div>
  66 + {% else %}
  67 + <div class="col-md-6 col-xs-6 col-sm-6 col-lg-6 col-lg-offset-3 col-md-offset-3 col-sm-offset-3 col-xs-offset-3 text-center">
  68 + <button type="submite" class="btn btn-success btn-raised btn-block" form="form-login" style="position: initial;"> {% trans 'Log in' %} </button>
  69 + </div>
66 {% endif %} 70 {% endif %}
67 </div> 71 </div>
68 </div> 72 </div>
69 <div class="row"> 73 <div class="row">
70 - <div class="col-sm-offset-1 col-md-10 col-lg-10 col-sm-10 col-xs-12">  
71 - <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 text-right forgotPassword">  
72 - <a href="{% url 'users:forgot_pass' %}">{% trans 'Forgot your password?' %}</a> 74 + {% if not deny_register %}
  75 + <div class="col-sm-offset-1 col-md-10 col-lg-10 col-sm-10 col-xs-12">
  76 + <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 text-right forgotPassword">
  77 + <a href="{% url 'users:forgot_pass' %}">{% trans 'Forgot your password?' %}</a>
  78 + </div>
73 </div> 79 </div>
74 - </div> 80 + {% else %}
  81 + <div class="col-md-12 col-lg-12 col-sm-12 col-xs-12">
  82 + <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 text-center forgotPassword">
  83 + <a href="{% url 'users:forgot_pass' %}">{% trans 'Forgot your password?' %}</a>
  84 + </div>
  85 + </div>
  86 + {% endif %}
75 </div> 87 </div>
76 </div> 88 </div>
77 </div> 89 </div>
@@ -79,5 +91,19 @@ @@ -79,5 +91,19 @@
79 </div> 91 </div>
80 {% endblock%} 92 {% endblock%}
81 93
  94 +{% block footer %}
  95 + {% if theme.footer_note != '' and theme.footer_note != '<p><br></p>' %}
  96 + <div class="footer">
  97 + <div class="row">
  98 + <div class="col-md-12 text-center">
  99 + {% autoescape off %}
  100 + {{ theme.footer_note }}
  101 + {% endautoescape %}
  102 + </div>
  103 + </div>
  104 + </div>
  105 + {% endif %}
  106 +{% endblock %}
  107 +
82 {% block bottommenu %} 108 {% block bottommenu %}
83 {% endblock %} 109 {% endblock %}
84 \ No newline at end of file 110 \ No newline at end of file
users/templates/users/new_password.html
@@ -15,7 +15,7 @@ @@ -15,7 +15,7 @@
15 {% block content %} 15 {% block content %}
16 <div class="row"> 16 <div class="row">
17 <div class="col-lg-offset-1 col-md-offset-1"> 17 <div class="col-lg-offset-1 col-md-offset-1">
18 - <img src="{% static 'img/amadeus.png' %}" class="img-responsive center-block logo-login logo-register" alt="logo amadeus"> 18 + <img src="{{ theme.large_logo_url }}" class="img-responsive center-block logo-login logo-register" alt="logo amadeus">
19 </div> 19 </div>
20 </div> 20 </div>
21 21
users/templates/users/register.html
@@ -15,7 +15,7 @@ @@ -15,7 +15,7 @@
15 {% block content %} 15 {% block content %}
16 <div class="row"> 16 <div class="row">
17 <div class="col-lg-offset-1 col-md-offset-1"> 17 <div class="col-lg-offset-1 col-md-offset-1">
18 - <img src="{% static 'img/amadeus.png' %}" class="img-responsive center-block logo-login logo-register" alt="logo amadeus"> 18 + <img src="{{ theme.large_logo_url }}" class="img-responsive center-block logo-login logo-register" alt="logo amadeus">
19 </div> 19 </div>
20 </div> 20 </div>
21 21
users/views.py
@@ -22,6 +22,10 @@ from django.conf import settings @@ -22,6 +22,10 @@ from django.conf import settings
22 from django.utils.encoding import force_bytes 22 from django.utils.encoding import force_bytes
23 from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode 23 from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode
24 from django.template import loader 24 from django.template import loader
  25 +from django.core.mail import EmailMessage
  26 +from django.core.mail.backends.smtp import EmailBackend
  27 +
  28 +from mailsender.models import MailSender
25 29
26 #API IMPORTS 30 #API IMPORTS
27 from rest_framework import viewsets 31 from rest_framework import viewsets
@@ -346,15 +350,32 @@ class ForgotPassword(generic.FormView): @@ -346,15 +350,32 @@ class ForgotPassword(generic.FormView):
346 'protocol': 'http', 350 'protocol': 'http',
347 } 351 }
348 352
349 - subject_template_name='registration/password_reset_subject.txt' 353 + subject_template_name = 'registration/password_reset_subject.txt'
350 email_template_name = 'recover_pass_email_template.html' 354 email_template_name = 'recover_pass_email_template.html'
351 355
352 subject = loader.render_to_string(subject_template_name, c) 356 subject = loader.render_to_string(subject_template_name, c)
353 # Email subject *must not* contain newlines 357 # Email subject *must not* contain newlines
354 subject = ''.join(subject.splitlines()) 358 subject = ''.join(subject.splitlines())
355 email = loader.render_to_string(email_template_name, c) 359 email = loader.render_to_string(email_template_name, c)
356 -  
357 - send_mail(subject, email, settings.DEFAULT_FROM_EMAIL , [user.email], fail_silently=False) 360 +
  361 + mailsender = MailSender.objects.get(id = 1)
  362 +
  363 + if mailsender.hostname == "example.com":
  364 + send_mail(subject, email, settings.DEFAULT_FROM_EMAIL , [user.email], fail_silently=False)
  365 + else:
  366 + if mailsender.crypto == 3 or mailsender.crypto == 4:
  367 + tls = True
  368 + else:
  369 + tls = False
  370 +
  371 + backend = EmailBackend(
  372 + host = mailsender.hostname, port = mailsender.port, username = mailsender.username,
  373 + password = mailsender.password, use_tls = tls, fail_silently = False
  374 + )
  375 +
  376 + mail_msg = EmailMessage(subject = subject, body = email, from_email = settings.DEFAULT_FROM_EMAIL, to = [user.email], connection = backend)
  377 +
  378 + mail_msg.send()
358 379
359 result = self.form_valid(form) 380 result = self.form_valid(form)
360 messages.success(request, _("Soon you'll receive an email with instructions to set your new password. If you don't receive it in 24 hours, please check your spam box.")) 381 messages.success(request, _("Soon you'll receive an email with instructions to set your new password. If you don't receive it in 24 hours, please check your spam box."))