Commit 8a92f2b388823cb10e520c31c6dc96b148a1f2f3
1 parent
bf46f0ba
Exists in
master
and in
3 other branches
Changin mural posts style
Showing
7 changed files
with
163 additions
and
7 deletions
Show diff stats
amadeus/static/css/base/amadeus.css
@@ -947,7 +947,7 @@ li.item .notify_badge { | @@ -947,7 +947,7 @@ li.item .notify_badge { | ||
947 | .mural .post_make .panel-body { | 947 | .mural .post_make .panel-body { |
948 | padding: 0; | 948 | padding: 0; |
949 | } | 949 | } |
950 | -.mural .post_make .user-img { | 950 | +.mural .post_make .user-img, .post .post-img { |
951 | padding: 0; | 951 | padding: 0; |
952 | display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */ | 952 | display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */ |
953 | display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */ | 953 | display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */ |
@@ -977,4 +977,72 @@ li.item .notify_badge { | @@ -977,4 +977,72 @@ li.item .notify_badge { | ||
977 | .post-button { | 977 | .post-button { |
978 | padding-right: inherit !important; | 978 | padding-right: inherit !important; |
979 | padding-left: inherit !important; | 979 | padding-left: inherit !important; |
980 | +} | ||
981 | + | ||
982 | +.post .post-body { | ||
983 | + padding-right: 0; | ||
984 | +} | ||
985 | + | ||
986 | +.post .post-user { | ||
987 | + margin-top: 0; | ||
988 | + margin-bottom: 5px; | ||
989 | + font-size: 18px; | ||
990 | + font-weight: 700; | ||
991 | +} | ||
992 | + | ||
993 | +.post .post-user .btn-group { | ||
994 | + margin: 0; | ||
995 | +} | ||
996 | + | ||
997 | +.post .post-user .btn-group .btn_menu i { | ||
998 | + font-size: 18px; | ||
999 | +} | ||
1000 | + | ||
1001 | +.post .post-user .user-action { | ||
1002 | + padding-left: 5px; | ||
1003 | + font-size: 16px; | ||
1004 | + font-weight: normal; | ||
1005 | +} | ||
1006 | + | ||
1007 | +.post .post-user .user-action i { | ||
1008 | + font-size: 22px; | ||
1009 | +} | ||
1010 | + | ||
1011 | +.post .time { | ||
1012 | + font-size: 14px; | ||
1013 | +} | ||
1014 | + | ||
1015 | +.post .post-comment { | ||
1016 | + margin-top: 10px; | ||
1017 | + border-top-width: 1px; | ||
1018 | + border-top-style: solid; | ||
1019 | + padding: 10px 0px 8px 0px; | ||
1020 | +} | ||
1021 | + | ||
1022 | +.post .post-comment .user-img { | ||
1023 | + display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */ | ||
1024 | + display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */ | ||
1025 | + display: -ms-flexbox; /* TWEENER - IE 10 */ | ||
1026 | + display: -webkit-flex; /* NEW - Chrome */ | ||
1027 | + display: flex; /* NEW, Spec - Opera 12.1, Firefox 20+ */ | ||
1028 | + flex-direction: column; | ||
1029 | + justify-content: center; | ||
1030 | +} | ||
1031 | + | ||
1032 | +.post .post-comment .comment-field { | ||
1033 | + padding-left: 0px; | ||
1034 | +} | ||
1035 | + | ||
1036 | +.post .post-comment .comment-field div { | ||
1037 | + border-width: 1px; | ||
1038 | + border-style: solid; | ||
1039 | +} | ||
1040 | + | ||
1041 | +.post .post-comment .comment-field h4 { | ||
1042 | + margin: 5px 0px; | ||
1043 | + line-height: 1.8em; | ||
1044 | + padding-left: 10px; | ||
1045 | + font-size: 14px; | ||
1046 | + font-style: italic; | ||
1047 | + cursor: text; | ||
980 | } | 1048 | } |
981 | \ No newline at end of file | 1049 | \ No newline at end of file |
amadeus/static/css/themes/green.css
@@ -504,10 +504,32 @@ a.add-row { | @@ -504,10 +504,32 @@ a.add-row { | ||
504 | color: #CCCCCC; | 504 | color: #CCCCCC; |
505 | } | 505 | } |
506 | 506 | ||
507 | -.post_action i { | 507 | +.post_action i, .post .post-user .user-action i { |
508 | color: #1d8fe0; | 508 | color: #1d8fe0; |
509 | } | 509 | } |
510 | 510 | ||
511 | +.post .post-user { | ||
512 | + color: #4caf50; | ||
513 | +} | ||
514 | + | ||
515 | +.post .post-user .user-action { | ||
516 | + color: #BBBBBB; | ||
517 | +} | ||
518 | + | ||
519 | +.post .time { | ||
520 | + color: #ABABAB; | ||
521 | +} | ||
522 | + | ||
523 | +.post .post-comment { | ||
524 | + border-top-color: #888888; | ||
525 | + background: #D5D5D5; | ||
526 | +} | ||
527 | + | ||
528 | +.post .post-comment .comment-field div { | ||
529 | + border-color: #888888; | ||
530 | + background: #FFFFFF; | ||
531 | +} | ||
532 | + | ||
511 | @media(max-width: 768px) { | 533 | @media(max-width: 768px) { |
512 | .navbar .navbar-nav .dropdown .dropdown-menu li > a { | 534 | .navbar .navbar-nav .dropdown .dropdown-menu li > a { |
513 | color: #333333 !important; | 535 | color: #333333 !important; |
mural/templates/mural/_view.html
1 | +{% load i18n mural_filters %} | ||
2 | + | ||
1 | <div class="row panel panel-default"> | 3 | <div class="row panel panel-default"> |
2 | - <div class="panel-body"> | ||
3 | - {{ post.user }} | 4 | + <div class="panel-body post"> |
5 | + <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1 post-img"> | ||
6 | + <img src="{{ post.user.image_url }}" class="img-responsive" /> | ||
7 | + </div> | ||
8 | + <div class="col-lg-11 col-md-11 col-sm-11 col-xs-11 post-body"> | ||
9 | + <h4 class="post-user"> | ||
10 | + {{ post.user }} | ||
11 | + <span class="user-action"> | ||
12 | + <i class="fa {{ post.action|action_icon }}"></i> | ||
13 | + {{ post.get_action_display }} | ||
14 | + </span> | ||
15 | + {% if request.user == post.user %} | ||
16 | + <span class="btn-group pull-right"> | ||
17 | + <button class="btn btn-sm btn_menu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> | ||
18 | + <i class="fa fa-ellipsis-v" aria-hidden="true"></i> | ||
19 | + </button> | ||
20 | + <ul class="dropdown-menu pull-right" aria-labelledby="moreActions"> | ||
21 | + <li><a href=""><i class="fa fa-pencil fa-fw" aria-hidden="true"></i> {% trans 'Edit' %}</a></li> | ||
22 | + <li> | ||
23 | + <a href="" aria-hidden="true"><i class="fa fa-trash fa-fw" aria-hidden="true"></i> {% trans 'Remove' %}</a></li> | ||
24 | + </ul> | ||
25 | + </span> | ||
26 | + {% endif %} | ||
27 | + </h4> | ||
28 | + <p class="time"> | ||
29 | + <i class="fa fa-clock-o"></i> | ||
30 | + {% trans 'In' %} {{ post.last_update }} | ||
31 | + </p> | ||
32 | + | ||
33 | + {% autoescape off %} | ||
34 | + {{ post.post }} | ||
35 | + {% endautoescape %} | ||
36 | + | ||
37 | + {% if post.image %} | ||
38 | + <img src="{{ post.image.url }}" class="img-responsive center-block" /> | ||
39 | + {% endif %} | ||
40 | + | ||
41 | + </div> | ||
42 | + <div class="col-md-12 post-comment"> | ||
43 | + <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1 user-img"> | ||
44 | + <img src="{{ request.user.image_url }}" class="img-responsive" /> | ||
45 | + </div> | ||
46 | + <div class="col-lg-11 col-md-11 col-sm-11 col-xs-11 comment-field"> | ||
47 | + <div> | ||
48 | + <h4 data-url="{% url 'mural:create_general' %}">{% trans 'Make a comment...' %}</h4> | ||
49 | + </div> | ||
50 | + </div> | ||
51 | + </div> | ||
4 | </div> | 52 | </div> |
5 | </div> | 53 | </div> |
6 | \ No newline at end of file | 54 | \ No newline at end of file |
mural/templates/mural/list.html
@@ -73,11 +73,14 @@ | @@ -73,11 +73,14 @@ | ||
73 | var frm = $('#post-form'); | 73 | var frm = $('#post-form'); |
74 | 74 | ||
75 | frm.submit(function () { | 75 | frm.submit(function () { |
76 | + var formData = new FormData($(this)[0]); | ||
77 | + | ||
76 | $.ajax({ | 78 | $.ajax({ |
77 | type: frm.attr('method'), | 79 | type: frm.attr('method'), |
78 | url: frm.attr('action'), | 80 | url: frm.attr('action'), |
79 | - data: frm.serialize(), | 81 | + data: formData, |
80 | dataType: "json", | 82 | dataType: "json", |
83 | + async: false, | ||
81 | success: function (data) { | 84 | success: function (data) { |
82 | $('.posts').prepend(data.view); | 85 | $('.posts').prepend(data.view); |
83 | 86 | ||
@@ -90,7 +93,10 @@ | @@ -90,7 +93,10 @@ | ||
90 | error: function(data) { | 93 | error: function(data) { |
91 | $(".modal").html(data.responseText); | 94 | $(".modal").html(data.responseText); |
92 | setPostFormSubmit(); | 95 | setPostFormSubmit(); |
93 | - } | 96 | + }, |
97 | + cache: false, | ||
98 | + contentType: false, | ||
99 | + processData: false | ||
94 | }); | 100 | }); |
95 | 101 | ||
96 | return false; | 102 | return false; |
@@ -0,0 +1,12 @@ | @@ -0,0 +1,12 @@ | ||
1 | +from django import template | ||
2 | + | ||
3 | +register = template.Library() | ||
4 | + | ||
5 | +@register.filter(name = 'action_icon') | ||
6 | +def action_icon(action): | ||
7 | + if action == "comment": | ||
8 | + icon = "fa-commenting-o" | ||
9 | + elif action == "help": | ||
10 | + icon = "fa-comments-o" | ||
11 | + | ||
12 | + return icon | ||
0 | \ No newline at end of file | 13 | \ No newline at end of file |
mural/views.py
@@ -27,7 +27,7 @@ class GeneralIndex(LoginRequiredMixin, generic.ListView): | @@ -27,7 +27,7 @@ class GeneralIndex(LoginRequiredMixin, generic.ListView): | ||
27 | def get_queryset(self): | 27 | def get_queryset(self): |
28 | user = self.request.user | 28 | user = self.request.user |
29 | 29 | ||
30 | - general = GeneralPost.objects.all() | 30 | + general = GeneralPost.objects.extra(select={"most_recent": "greatest(last_update, (select max(mural_comment.last_update) from mural_comment where mural_comment.post_id = mural_generalpost.mural_ptr_id))"}).order_by("-most_recent") |
31 | 31 | ||
32 | self.totals['general'] = MuralVisualizations.objects.filter(Q(user = user) & Q(viewed = False) & (Q(post__generalpost__isnull = False) | Q(comment__post__generalpost__isnull = False))).distinct().count() | 32 | self.totals['general'] = MuralVisualizations.objects.filter(Q(user = user) & Q(viewed = False) & (Q(post__generalpost__isnull = False) | Q(comment__post__generalpost__isnull = False))).distinct().count() |
33 | self.totals['category'] = MuralVisualizations.objects.filter(Q(user = user) & Q(viewed = False) & (Q(post__categorypost__space__coordinators = user) | Q(comment__post__categorypost__space__coordinators = user) | Q(post__categorypost__space__subject_category__professor = user) | Q(post__categorypost__space__subject_category__students = user) | Q(comment__post__categorypost__space__subject_category__professor = user) | Q(comment__post__categorypost__space__subject_category__students = user))).distinct().count() | 33 | self.totals['category'] = MuralVisualizations.objects.filter(Q(user = user) & Q(viewed = False) & (Q(post__categorypost__space__coordinators = user) | Q(comment__post__categorypost__space__coordinators = user) | Q(post__categorypost__space__subject_category__professor = user) | Q(post__categorypost__space__subject_category__students = user) | Q(comment__post__categorypost__space__subject_category__professor = user) | Q(comment__post__categorypost__space__subject_category__students = user))).distinct().count() |