Commit 534d7f705eed236fcfd71614942ab3075d0237c4

Authored by Zambom
1 parent 38d54884

Adding subject mural filters

amadeus/static/css/.sass-cache/a7f87b90919294b62ab4f8079e31dcda8f485534/green.sassc
No preview for this file type
amadeus/static/css/themes/green.css
... ... @@ -459,7 +459,7 @@ a.add-row {
459 459 .suggestions {
460 460 background: #FFFFFF; }
461 461  
462   -.mural-category, .mural-subject {
  462 +.mural-ungeneral {
463 463 background: #EEE; }
464 464  
465 465 .btn:not(.btn-raised):not(.btn-link):focus, .btn:not(.btn-raised):not(.btn-link):hover, .input-group-btn .btn:not(.btn-raised):not(.btn-link):focus, .input-group-btn .btn:not(.btn-raised):not(.btn-link):hover {
... ...
amadeus/static/css/themes/green.css.map
1 1 {
2 2 "version": 3,
3   -"mappings": "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",
  3 +"mappings": "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",
4 4 "sources": ["green.sass"],
5 5 "names": [],
6 6 "file": "green.css"
... ...
amadeus/static/css/themes/green.sass
... ... @@ -629,7 +629,7 @@ a.add-row
629 629 background: $white
630 630  
631 631  
632   -.mural-category, .mural-subject
  632 +.mural-ungeneral
633 633 background: #EEE
634 634  
635 635  
... ...
amadeus/static/js/mural_category.js
... ... @@ -1,188 +0,0 @@
1   -$('.mural-category').on('shown.bs.collapse', function(e) {
2   - if($(this).is(e.target)){
3   - var li = $(".breadcrumb").find('li:last-child');
4   - var li_text = $(li).html();
5   - var url = $(".mural_url").val();
6   - var new_li = $(li).clone();
7   -
8   - new_li.html($(this).parent().find('.panel-title span').text());
9   -
10   - $(li).html("<a href='" + url + "'>" + li_text + "</a>");
11   - $(li).append("<span class='divider'>/</span>");
12   -
13   - new_li.appendTo('.breadcrumb');
14   -
15   - var post_section = $(this).find('.posts'),
16   - without = $(this).find('.no-subjects'),
17   - loading = $(this).find('.loading-posts'),
18   - more = $(this).find('.more-posts'),
19   - filters = $(this).find('.post-filters'),
20   - clear_filters = $(this).find('.clear_filter'),
21   - mural = post_section.parent().parent();
22   -
23   - if (post_section.children().length == 0) {
24   - var url = $(this).find('.mural').data('url');
25   -
26   - $.ajax({
27   - url: url,
28   - dataType: 'json',
29   - success: function (data) {
30   - loading.hide();
31   -
32   - if (data.count > 0) {
33   - post_section.append(data.posts);
34   -
35   - mural.data('pages', data.num_pages);
36   - mural.data('page', data.num_page);
37   -
38   - setTimeout(function () { postHeightLimits() }, 100);
39   -
40   - if (data.num_page < data.num_pages) {
41   - more.show();
42   - } else {
43   - more.hide();
44   - }
45   -
46   - $('.mural_badge').each(function () {
47   - var actual = $(this).text();
48   -
49   - if (actual != "+99") {
50   - actual = parseInt(actual, 10) - data.unviewed;
51   -
52   - if (actual <= 0) {
53   - $(this).hide();
54   - } else {
55   - $(this).text(actual);
56   - }
57   - }
58   - });
59   -
60   - $('.cat_badge').each(function () {
61   - var actual = $(this).text();
62   -
63   - if (actual != "+99") {
64   - actual = parseInt(actual, 10) - data.unviewed;
65   -
66   - if (actual < 0) {
67   - actual = 0;
68   - }
69   -
70   - $(this).text(actual);
71   - }
72   - });
73   -
74   - without.hide();
75   - } else {
76   - more.hide();
77   -
78   - without.show();
79   - }
80   - }
81   - });
82   - }
83   -
84   - more.click(function () {
85   - var url = mural.data('url'),
86   - pageNum = mural.data('page'),
87   - numberPages = mural.data('pages'),
88   - favorites = mural.data('fav'),
89   - mine = mural.data('mine'),
90   - showing = new_posts.join(',');
91   -
92   - if (pageNum == numberPages) {
93   - return false
94   - }
95   -
96   - pageNum = pageNum + 1;
97   -
98   - more.hide();
99   -
100   - loading.show();
101   -
102   - $.ajax({
103   - url: url,
104   - data: {'page': pageNum, 'favorite': favorites, 'mine': mine, 'showing': showing},
105   - dataType: 'json',
106   - success: function (data) {
107   - loading.hide();
108   -
109   - post_section.append(data.posts);
110   -
111   - mural.data('pages', data.num_pages);
112   - mural.data('page', data.num_page);
113   -
114   - setTimeout(function () { postHeightLimits() }, 100);
115   -
116   - if (data.num_page < data.num_pages) {
117   - more.show();
118   - } else {
119   - more.hide();
120   - }
121   - }
122   - });
123   - });
124   -
125   - filters.submit(function () {
126   - var favorite = $(this).find("input[name='favorite']").is(':checked') ? "True" : "",
127   - mine = $(this).find("input[name='mine']").is(':checked') ? "True" : "",
128   - url = mural.data('url');
129   -
130   - post_section.html('');
131   -
132   - more.hide();
133   - loading.show();
134   -
135   - $.ajax({
136   - url: url,
137   - data: {'favorite': favorite, 'mine': mine},
138   - dataType: 'json',
139   - success: function (data) {
140   - loading.hide();
141   -
142   - if (data.count > 0) {
143   - post_section.append(data.posts);
144   -
145   - mural.data('pages', data.num_pages);
146   - mural.data('page', data.num_page);
147   -
148   - if (data.num_page < data.num_pages) {
149   - more.show();
150   - } else {
151   - more.hide();
152   - }
153   -
154   - setTimeout(function () { postHeightLimits() }, 100);
155   -
156   - without.hide();
157   - } else {
158   - without.show();
159   - }
160   -
161   - mural.data('fav', favorite);
162   - mural.data('mine', mine);
163   - }
164   - });
165   -
166   - return false;
167   - });
168   -
169   - clear_filters.click(function () {
170   - var frm = $(this).parent();
171   -
172   - frm.find("input[type='checkbox']").prop('checked', false);
173   -
174   - frm.submit();
175   - });
176   - }
177   -});
178   -
179   -$('.mural-category').on('hidden.bs.collapse', function(e) {
180   - if($(this).is(e.target)){
181   - $(".breadcrumb").find('li:last-child').remove();
182   -
183   - var li = $(".breadcrumb").find('li:last-child');
184   - var text = $(li).find('a').text();
185   -
186   - $(li).html(text);
187   - }
188   -});
189 0 \ No newline at end of file
amadeus/static/js/mural_subject.js
... ... @@ -80,6 +80,47 @@ $(&#39;.mural-subject&#39;).on(&#39;shown.bs.collapse&#39;, function(e) {
80 80 }
81 81 });
82 82 }
  83 +
  84 + more.click(function () {
  85 + var url = mural.data('url'),
  86 + pageNum = mural.data('page'),
  87 + numberPages = mural.data('pages'),
  88 + favorites = mural.data('fav'),
  89 + mine = mural.data('mine'),
  90 + showing = new_posts.join(',');
  91 +
  92 + if (pageNum == numberPages) {
  93 + return false
  94 + }
  95 +
  96 + pageNum = pageNum + 1;
  97 +
  98 + more.hide();
  99 +
  100 + loading.show();
  101 +
  102 + $.ajax({
  103 + url: url,
  104 + data: {'page': pageNum, 'favorite': favorites, 'mine': mine, 'showing': showing},
  105 + dataType: 'json',
  106 + success: function (data) {
  107 + loading.hide();
  108 +
  109 + post_section.append(data.posts);
  110 +
  111 + mural.data('pages', data.num_pages);
  112 + mural.data('page', data.num_page);
  113 +
  114 + setTimeout(function () { postHeightLimits() }, 100);
  115 +
  116 + if (data.num_page < data.num_pages) {
  117 + more.show();
  118 + } else {
  119 + more.hide();
  120 + }
  121 + }
  122 + });
  123 + });
83 124 }
84 125 });
85 126  
... ...
amadeus/static/js/mural_ungeneral.js 0 → 100644
... ... @@ -0,0 +1,188 @@
  1 +$('.mural-ungeneral').on('shown.bs.collapse', function(e) {
  2 + if($(this).is(e.target)){
  3 + var li = $(".breadcrumb").find('li:last-child');
  4 + var li_text = $(li).html();
  5 + var url = $(".mural_url").val();
  6 + var new_li = $(li).clone();
  7 +
  8 + new_li.html($(this).parent().find('.panel-title span').text());
  9 +
  10 + $(li).html("<a href='" + url + "'>" + li_text + "</a>");
  11 + $(li).append("<span class='divider'>/</span>");
  12 +
  13 + new_li.appendTo('.breadcrumb');
  14 +
  15 + var post_section = $(this).find('.posts'),
  16 + without = $(this).find('.no-subjects'),
  17 + loading = $(this).find('.loading-posts'),
  18 + more = $(this).find('.more-posts'),
  19 + filters = $(this).find('.post-filters'),
  20 + clear_filters = $(this).find('.clear_filter'),
  21 + mural = post_section.parent().parent();
  22 +
  23 + if (post_section.children().length == 0) {
  24 + var url = $(this).find('.mural').data('url');
  25 +
  26 + $.ajax({
  27 + url: url,
  28 + dataType: 'json',
  29 + success: function (data) {
  30 + loading.hide();
  31 +
  32 + if (data.count > 0) {
  33 + post_section.append(data.posts);
  34 +
  35 + mural.data('pages', data.num_pages);
  36 + mural.data('page', data.num_page);
  37 +
  38 + setTimeout(function () { postHeightLimits() }, 100);
  39 +
  40 + if (data.num_page < data.num_pages) {
  41 + more.show();
  42 + } else {
  43 + more.hide();
  44 + }
  45 +
  46 + $('.mural_badge').each(function () {
  47 + var actual = $(this).text();
  48 +
  49 + if (actual != "+99") {
  50 + actual = parseInt(actual, 10) - data.unviewed;
  51 +
  52 + if (actual <= 0) {
  53 + $(this).hide();
  54 + } else {
  55 + $(this).text(actual);
  56 + }
  57 + }
  58 + });
  59 +
  60 + $('.ung_badge').each(function () {
  61 + var actual = $(this).text();
  62 +
  63 + if (actual != "+99") {
  64 + actual = parseInt(actual, 10) - data.unviewed;
  65 +
  66 + if (actual < 0) {
  67 + actual = 0;
  68 + }
  69 +
  70 + $(this).text(actual);
  71 + }
  72 + });
  73 +
  74 + without.hide();
  75 + } else {
  76 + more.hide();
  77 +
  78 + without.show();
  79 + }
  80 + }
  81 + });
  82 + }
  83 +
  84 + more.click(function () {
  85 + var url = mural.data('url'),
  86 + pageNum = mural.data('page'),
  87 + numberPages = mural.data('pages'),
  88 + favorites = mural.data('fav'),
  89 + mine = mural.data('mine'),
  90 + showing = new_posts.join(',');
  91 +
  92 + if (pageNum == numberPages) {
  93 + return false
  94 + }
  95 +
  96 + pageNum = pageNum + 1;
  97 +
  98 + more.hide();
  99 +
  100 + loading.show();
  101 +
  102 + $.ajax({
  103 + url: url,
  104 + data: {'page': pageNum, 'favorite': favorites, 'mine': mine, 'showing': showing},
  105 + dataType: 'json',
  106 + success: function (data) {
  107 + loading.hide();
  108 +
  109 + post_section.append(data.posts);
  110 +
  111 + mural.data('pages', data.num_pages);
  112 + mural.data('page', data.num_page);
  113 +
  114 + setTimeout(function () { postHeightLimits() }, 100);
  115 +
  116 + if (data.num_page < data.num_pages) {
  117 + more.show();
  118 + } else {
  119 + more.hide();
  120 + }
  121 + }
  122 + });
  123 + });
  124 +
  125 + filters.submit(function () {
  126 + var favorite = $(this).find("input[name='favorite']").is(':checked') ? "True" : "",
  127 + mine = $(this).find("input[name='mine']").is(':checked') ? "True" : "",
  128 + url = mural.data('url');
  129 +
  130 + post_section.html('');
  131 +
  132 + more.hide();
  133 + loading.show();
  134 +
  135 + $.ajax({
  136 + url: url,
  137 + data: {'favorite': favorite, 'mine': mine},
  138 + dataType: 'json',
  139 + success: function (data) {
  140 + loading.hide();
  141 +
  142 + if (data.count > 0) {
  143 + post_section.append(data.posts);
  144 +
  145 + mural.data('pages', data.num_pages);
  146 + mural.data('page', data.num_page);
  147 +
  148 + if (data.num_page < data.num_pages) {
  149 + more.show();
  150 + } else {
  151 + more.hide();
  152 + }
  153 +
  154 + setTimeout(function () { postHeightLimits() }, 100);
  155 +
  156 + without.hide();
  157 + } else {
  158 + without.show();
  159 + }
  160 +
  161 + mural.data('fav', favorite);
  162 + mural.data('mine', mine);
  163 + }
  164 + });
  165 +
  166 + return false;
  167 + });
  168 +
  169 + clear_filters.click(function () {
  170 + var frm = $(this).parent();
  171 +
  172 + frm.find("input[type='checkbox']").prop('checked', false);
  173 +
  174 + frm.submit();
  175 + });
  176 + }
  177 +});
  178 +
  179 +$('.mural-ungeneral').on('hidden.bs.collapse', function(e) {
  180 + if($(this).is(e.target)){
  181 + $(".breadcrumb").find('li:last-child').remove();
  182 +
  183 + var li = $(".breadcrumb").find('li:last-child');
  184 + var text = $(li).find('a').text();
  185 +
  186 + $(li).html(text);
  187 + }
  188 +});
0 189 \ No newline at end of file
... ...
amadeus/static/js/socket.js
... ... @@ -28,6 +28,12 @@ socket.onmessage = function(e) {
28 28 muralNotificationCategoryUpdate(content);
29 29 } else if (content.subtype == "delete_cat") {
30 30 muralNotificationCategoryDelete(content);
  31 + } else if (content.subtype == "create_sub") {
  32 + muralNotificationSubject(content);
  33 + } else if (content.subtype == "update_sub") {
  34 + muralNotificationSubjectUpdate(content);
  35 + } else if (content.subtype == "delete_sub") {
  36 + muralNotificationSubjectDelete(content);
31 37 }
32 38 }
33 39 }
... ... @@ -214,4 +220,66 @@ function muralNotificationCategoryDelete(content) {
214 220 post.remove();
215 221 }
216 222 }
  223 +}
  224 +
  225 +function muralNotificationSubject(content) {
  226 + var sub_section = $("#" + content.sub);
  227 +
  228 + if (window.location.pathname == content.pathname && sub_section.is(':visible')) {
  229 +
  230 + sub_section.find('.posts').prepend(content.complete);
  231 +
  232 + sub_section.find('.no-subjects').hide();
  233 + } else {
  234 + $('.mural_badge').each(function () {
  235 + var actual = $(this).text();
  236 +
  237 + if (actual != "+99") {
  238 + actual = parseInt(actual, 10) + 1;
  239 +
  240 + if (actual > 99) {
  241 + actual = "+99";
  242 + }
  243 +
  244 + $(this).text(actual);
  245 + }
  246 +
  247 + $(this).show();
  248 + });
  249 + }
  250 +
  251 + if (("Notification" in window)) {
  252 + var options = {
  253 + icon: content.user_icon,
  254 + body: content.simple
  255 + }
  256 +
  257 + if (Notification.permission === "granted") {
  258 + var notification = new Notification("", options);
  259 +
  260 + setTimeout(notification.close.bind(notification), 3000);
  261 + }
  262 + }
  263 +}
  264 +
  265 +function muralNotificationSubjectUpdate(content) {
  266 + if (window.location.pathname == content.pathname) {
  267 + var post = $("#post-" + content.post_id);
  268 +
  269 + if (post.is(":visible") || post.is(":hidden")) {
  270 + post.before(content.complete);
  271 +
  272 + post.remove();
  273 + }
  274 + }
  275 +}
  276 +
  277 +function muralNotificationSubjectDelete(content) {
  278 + if (window.location.pathname == content.pathname) {
  279 + var post = $("#post-" + content.post_id);
  280 +
  281 + if (post.is(":visible") || post.is(":hidden")) {
  282 + post.remove();
  283 + }
  284 + }
217 285 }
218 286 \ No newline at end of file
... ...
mural/templates/mural/list_category.html
... ... @@ -17,7 +17,7 @@
17 17 <div id="core-subjects-options-div">
18 18 <ul class="core-subjects-options">
19 19 <a href="{% url 'mural:manage_general' %}"><li>{% trans "General" %} ({{ totals.general }})</li></a>
20   - <a href="{% url 'mural:manage_category' %}"><li class="active">{% trans "Per Category" %} (<span class="cat_badge">{{ totals.category }}</span>)</li></a>
  20 + <a href="{% url 'mural:manage_category' %}"><li class="active">{% trans "Per Category" %} (<span class="ung_badge">{{ totals.category }}</span>)</li></a>
21 21 <a href="{% url 'mural:manage_subject' %}"><li>{% trans "Per Subject" %} ({{ totals.subject }})</li></a>
22 22 </ul>
23 23 </div>
... ... @@ -65,7 +65,7 @@
65 65 </div>
66 66 </div>
67 67 </div>
68   - <div id="{{category.slug}}" class="panel-collapse panel-body collapse mural-category">
  68 + <div id="{{category.slug}}" class="panel-collapse panel-body collapse mural-ungeneral">
69 69 <div class="col-md-12 cards-content mural" data-url="{% url 'mural:load_category' category.id %}">
70 70 <div class="col-md-9 col-sm-9 col-xs-9 mural-list">
71 71 <div class="post_make panel panel-default">
... ... @@ -134,5 +134,5 @@
134 134  
135 135 <script type="text/javascript" src="{% static 'js/category.js' %}"></script>
136 136 <script type="text/javascript" src="{% static 'js/mural.js' %}"></script>
137   - <script type="text/javascript" src="{% static 'js/mural_category.js' %}"></script>
  137 + <script type="text/javascript" src="{% static 'js/mural_ungeneral.js' %}"></script>
138 138 {% endblock %}
139 139 \ No newline at end of file
... ...
mural/templates/mural/list_subject.html
... ... @@ -18,7 +18,7 @@
18 18 <ul class="core-subjects-options">
19 19 <a href="{% url 'mural:manage_general' %}"><li>{% trans "General" %} ({{ totals.general }})</li></a>
20 20 <a href="{% url 'mural:manage_category' %}"><li>{% trans "Per Category" %} ({{ totals.category }})</li></a>
21   - <a href="{% url 'mural:manage_subject' %}"><li class="active">{% trans "Per Subject" %} (<span class="sub_badge">{{ totals.subject }}</span>)</li></a>
  21 + <a href="{% url 'mural:manage_subject' %}"><li class="active">{% trans "Per Subject" %} (<span class="ung_badge">{{ totals.subject }}</span>)</li></a>
22 22 </ul>
23 23 </div>
24 24  
... ... @@ -64,7 +64,7 @@
64 64 </div>
65 65 </div>
66 66 </div>
67   - <div id="{{subject.slug}}" class="panel-collapse panel-body collapse mural-subject">
  67 + <div id="{{subject.slug}}" class="panel-collapse panel-body collapse mural-ungeneral">
68 68 <div class="col-md-12 cards-content mural" data-url="{% url 'mural:load_subject' subject.id %}">
69 69 <div class="col-md-9 col-sm-9 col-xs-9 mural-list">
70 70 <div class="post_make panel panel-default">
... ... @@ -133,5 +133,5 @@
133 133  
134 134 <script type="text/javascript" src="{% static 'js/category.js' %}"></script>
135 135 <script type="text/javascript" src="{% static 'js/mural.js' %}"></script>
136   - <script type="text/javascript" src="{% static 'js/mural_subject.js' %}"></script>
  136 + <script type="text/javascript" src="{% static 'js/mural_ungeneral.js' %}"></script>
137 137 {% endblock %}
138 138 \ No newline at end of file
... ...
mural/utils.py
... ... @@ -9,5 +9,14 @@ def getSpaceUsers(user, post):
9 9 space = post.get_space()
10 10  
11 11 return User.objects.filter(Q(is_staff = True) | Q(coordinators__id = space) | Q(professors__category__id = space) | Q(subject_student__category__id = space)).exclude(id = user)
  12 + elif post._my_subclass == "subjectpost":
  13 + space = post.get_space()
  14 +
  15 + if post.subjectpost.resource:
  16 + resource = post.subjectpost.resource
  17 +
  18 + return User.objects.filter(Q(is_staff = True) | Q(professors__id = space) | Q(coordinators__subject_category__id = space) | Q(resource_students = resource) | Q(group_participants__resource_groups = resource) | (Q(subject_student__id = space) & Q(subject_student__topic_subject__resource_topic = resource) & Q(subject_student__topic_subject__resource_topic__all_students = True))).exclude(id = user)
  19 + else:
  20 + return User.objects.filter(Q(is_staff = True) | Q(professors__id = space) | Q(coordinators__subject_category__id = space) | Q(subject_student__id = space)).exclude(id = user)
12 21  
13 22 return None
14 23 \ No newline at end of file
... ...
mural/views.py
... ... @@ -61,9 +61,9 @@ class GeneralIndex(LoginRequiredMixin, generic.ListView):
61 61 general_visualizations = MuralVisualizations.objects.filter(Q(user = user) & Q(viewed = False) & (Q(post__generalpost__isnull = False) | Q(comment__post__generalpost__isnull = False))).distinct()
62 62  
63 63 self.totals['general'] = general_visualizations.count()
64   - self.totals['category'] = MuralVisualizations.objects.filter(Q(user = user) & Q(viewed = False) & (Q(user__is_staff = True) | Q(post__categorypost__space__coordinators = user) | Q(comment__post__categorypost__space__coordinators = user) | Q(post__categorypost__space__subject_category__students = user) | Q(comment__post__categorypost__space__subject_category__students = user) | Q(post__categorypost__space__subject_category__professor = user) | Q(comment__post__categorypost__space__subject_category__professor = user))).distinct().count()
65   - self.totals['subject'] = MuralVisualizations.objects.filter(Q(user = user) & Q(viewed = False) & (Q(post__subjectpost__space__professor = user) | Q(comment__post__subjectpost__space__professor = user) | Q(post__subjectpost__space__students = user) | Q(comment__post__subjectpost__space__students = user))).distinct().count()
66   -
  64 + self.totals['category'] = MuralVisualizations.objects.filter(Q(user = user) & Q(viewed = False) & ((Q(user__is_staff = True) & (Q(post__categorypost__isnull = False) | Q(comment__post__categorypost__isnull = False))) | Q(post__categorypost__space__coordinators = user) | Q(comment__post__categorypost__space__coordinators = user) | Q(post__categorypost__space__subject_category__students = user) | Q(comment__post__categorypost__space__subject_category__students = user) | Q(post__categorypost__space__subject_category__professor = user) | Q(comment__post__categorypost__space__subject_category__professor = user))).distinct().count()
  65 + self.totals['subject'] = MuralVisualizations.objects.filter(Q(user = user) & Q(viewed = False) & ((Q(user__is_staff = True) & (Q(post__subjectpost__isnull = False) | Q(comment__post__subjectpost__isnull = False))) | Q(post__subjectpost__space__professor = user) | Q(comment__post__subjectpost__space__professor = user) | Q(post__subjectpost__space__students = user) | Q(comment__post__subjectpost__space__students = user))).distinct().count()
  66 +
67 67 general_visualizations.update(viewed = True)
68 68  
69 69 MuralVisualizations.objects.filter(user = user, viewed = False, comment__post__generalpost__isnull = False).update(viewed = True)
... ... @@ -284,8 +284,8 @@ class CategoryIndex(LoginRequiredMixin, generic.ListView):
284 284 categories = Category.objects.filter(Q(coordinators__pk = user.pk) | Q(subject_category__professor__pk = user.pk) | Q(subject_category__students__pk = user.pk, visible = True)).distinct()
285 285  
286 286 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()
287   - self.totals['category'] = MuralVisualizations.objects.filter(Q(user = user) & Q(viewed = False) & (Q(user__is_staff = True) | Q(post__categorypost__space__coordinators = user) | Q(comment__post__categorypost__space__coordinators = user) | Q(post__categorypost__space__subject_category__students = user) | Q(comment__post__categorypost__space__subject_category__students = user) | Q(post__categorypost__space__subject_category__professor = user) | Q(comment__post__categorypost__space__subject_category__professor = user))).distinct().count()
288   - self.totals['subject'] = MuralVisualizations.objects.filter(Q(user = user) & Q(viewed = False) & (Q(post__subjectpost__space__professor = user) | Q(comment__post__subjectpost__space__professor = user) | Q(post__subjectpost__space__students = user) | Q(comment__post__subjectpost__space__students = user))).distinct().count()
  287 + self.totals['category'] = MuralVisualizations.objects.filter(Q(user = user) & Q(viewed = False) & ((Q(user__is_staff = True) & (Q(post__categorypost__isnull = False) | Q(comment__post__categorypost__isnull = False))) | Q(post__categorypost__space__coordinators = user) | Q(comment__post__categorypost__space__coordinators = user) | Q(post__categorypost__space__subject_category__students = user) | Q(comment__post__categorypost__space__subject_category__students = user) | Q(post__categorypost__space__subject_category__professor = user) | Q(comment__post__categorypost__space__subject_category__professor = user))).distinct().count()
  288 + self.totals['subject'] = MuralVisualizations.objects.filter(Q(user = user) & Q(viewed = False) & ((Q(user__is_staff = True) & (Q(post__subjectpost__isnull = False) | Q(comment__post__subjectpost__isnull = False))) | Q(post__subjectpost__space__professor = user) | Q(comment__post__subjectpost__space__professor = user) | Q(post__subjectpost__space__students = user) | Q(comment__post__subjectpost__space__students = user))).distinct().count()
289 289  
290 290 return categories
291 291  
... ... @@ -490,8 +490,8 @@ class SubjectIndex(LoginRequiredMixin, generic.ListView):
490 490 subjects = Subject.objects.filter(Q(category__coordinators__pk = user.pk) | Q(professor__pk = user.pk) | Q(students__pk = user.pk, visible = True)).distinct()
491 491  
492 492 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()
493   - self.totals['category'] = MuralVisualizations.objects.filter(Q(user = user) & Q(viewed = False) & (Q(user__is_staff = True) | Q(post__categorypost__space__coordinators = user) | Q(comment__post__categorypost__space__coordinators = user) | Q(post__categorypost__space__subject_category__students = user) | Q(comment__post__categorypost__space__subject_category__students = user) | Q(post__categorypost__space__subject_category__professor = user) | Q(comment__post__categorypost__space__subject_category__professor = user))).distinct().count()
494   - self.totals['subject'] = MuralVisualizations.objects.filter(Q(user = user) & Q(viewed = False) & (Q(post__subjectpost__space__professor = user) | Q(comment__post__subjectpost__space__professor = user) | Q(post__subjectpost__space__students = user) | Q(comment__post__subjectpost__space__students = user))).distinct().count()
  493 + self.totals['category'] = MuralVisualizations.objects.filter(Q(user = user) & Q(viewed = False) & ((Q(user__is_staff = True) & (Q(post__categorypost__isnull = False) | Q(comment__post__categorypost__isnull = False))) | Q(post__categorypost__space__coordinators = user) | Q(comment__post__categorypost__space__coordinators = user) | Q(post__categorypost__space__subject_category__students = user) | Q(comment__post__categorypost__space__subject_category__students = user) | Q(post__categorypost__space__subject_category__professor = user) | Q(comment__post__categorypost__space__subject_category__professor = user))).distinct().count()
  494 + self.totals['subject'] = MuralVisualizations.objects.filter(Q(user = user) & Q(viewed = False) & ((Q(user__is_staff = True) & (Q(post__subjectpost__isnull = False) | Q(comment__post__subjectpost__isnull = False))) | Q(post__subjectpost__space__professor = user) | Q(comment__post__subjectpost__space__professor = user) | Q(post__subjectpost__space__students = user) | Q(comment__post__subjectpost__space__students = user))).distinct().count()
495 495  
496 496 return subjects
497 497  
... ... @@ -539,20 +539,20 @@ class SubjectCreate(LoginRequiredMixin, generic.edit.CreateView):
539 539  
540 540 self.object.save()
541 541  
542   - #users = User.objects.filter(Q(is_staff = True) | Q(coordinators = cat) | Q(professors__category = cat) | Q(subject_student__category = cat)).exclude(id = self.request.user.id)
  542 + users = getSpaceUsers(self.request.user.id, self.object)
543 543 entries = []
544 544  
545 545 notify_type = "mural"
546 546 user_icon = self.object.user.image_url
547   - #_view = render_to_string("mural/_view.html", {"post": self.object}, self.request)
  547 + _view = render_to_string("mural/_view.html", {"post": self.object}, self.request)
548 548 simple_notify = _("%s has made a post in %s")%(str(self.object.user), str(self.object.space))
549   - pathname = reverse("mural:manage_category")
  549 + pathname = reverse("mural:manage_subject")
550 550  
551   - #for user in users:
552   - # entries.append(MuralVisualizations(viewed = False, user = user, post = self.object))
553   - # Group("user-%s" % user.id).send({'text': json.dumps({"type": notify_type, "subtype": "create_cat", "user_icon": user_icon, "pathname": pathname, "simple": simple_notify, "complete": _view, "cat": slug})})
  551 + for user in users:
  552 + entries.append(MuralVisualizations(viewed = False, user = user, post = self.object))
  553 + Group("user-%s" % user.id).send({'text': json.dumps({"type": notify_type, "subtype": "create_sub", "user_icon": user_icon, "pathname": pathname, "simple": simple_notify, "complete": _view, "sub": slug})})
554 554  
555   - #MuralVisualizations.objects.bulk_create(entries)
  555 + MuralVisualizations.objects.bulk_create(entries)
556 556  
557 557 return super(SubjectCreate, self).form_valid(form)
558 558  
... ... @@ -594,14 +594,14 @@ class SubjectUpdate(LoginRequiredMixin, generic.UpdateView):
594 594  
595 595 self.object.save()
596 596  
597   - #users = User.objects.all().exclude(id = self.request.user.id)
  597 + users = getSpaceUsers(self.request.user.id, self.object)
598 598  
599 599 notify_type = "mural"
600 600 _view = render_to_string("mural/_view.html", {"post": self.object}, self.request)
601   - pathname = reverse("mural:manage_category")
  601 + pathname = reverse("mural:manage_subject")
602 602  
603   - #for user in users:
604   - # Group("user-%s" % user.id).send({'text': json.dumps({"type": notify_type, "subtype": "update_cat", "pathname": pathname, "complete": _view, "post_id": self.object.id})})
  603 + for user in users:
  604 + Group("user-%s" % user.id).send({'text': json.dumps({"type": notify_type, "subtype": "update_sub", "pathname": pathname, "complete": _view, "post_id": self.object.id})})
605 605  
606 606 return super(SubjectUpdate, self).form_valid(form)
607 607  
... ... @@ -631,13 +631,13 @@ class SubjectDelete(LoginRequiredMixin, generic.DeleteView):
631 631 return context
632 632  
633 633 def get_success_url(self):
634   - #users = User.objects.all().exclude(id = self.request.user.id)
  634 + users = getSpaceUsers(self.request.user.id, self.object)
635 635  
636 636 notify_type = "mural"
637 637 pathname = reverse("mural:manage_subject")
638 638  
639   - #for user in users:
640   - # Group("user-%s" % user.id).send({'text': json.dumps({"type": notify_type, "subtype": "delete_cat", "pathname": pathname, "post_id": self.object.id})})
  639 + for user in users:
  640 + Group("user-%s" % user.id).send({'text': json.dumps({"type": notify_type, "subtype": "delete_sub", "pathname": pathname, "post_id": self.object.id})})
641 641  
642 642 return reverse_lazy('mural:deleted_post')
643 643  
... ...