Commit b9b059c8bb933cdb609e0624145fa4700bf35bd4

Authored by Zambom
1 parent a16ea53e

Adding subject categories list [Issue: #206]

courses/templates/course/view.html
... ... @@ -19,7 +19,7 @@
19 19 {% endblock %}
20 20  
21 21 {% block sidebar %}
22   - <div class="panel panel-primary">
  22 + <div class="panel panel-primary">
23 23 <div class="panel-heading">
24 24 <h5>{% trans 'Menu' %}</h5>
25 25 </div>
... ... @@ -33,7 +33,19 @@
33 33 </div>
34 34 </div>
35 35  
36   -
  36 + <div class="panel panel-primary">
  37 + <div class="panel-heading">
  38 + <h5>{% trans 'Categories' %}</h5>
  39 + </div>
  40 + <div class="panel-body">
  41 + <ul class="nav nav-pills nav-stacked">
  42 + <li {% if category is None %}class="active"{% endif %}><a href="{% url 'course:view' course.slug %}">{% trans 'All' %}</a></li>
  43 + {% for cat in categorys_subjects %}
  44 + <li {% if category == cat.slug %}class="active"{% endif %}><a href="{% url 'course:view_filter' course.slug cat.slug %}">{{ cat }}</a></li>
  45 + {% endfor %}
  46 + </ul>
  47 + </div>
  48 + </div>
37 49 {% endblock %}
38 50  
39 51 {% block content %}
... ... @@ -63,12 +75,13 @@
63 75 </div>
64 76 </div>
65 77 <div class="panel-body">
66   - <p><b>{% trans 'Course Name' %}: </b>{{course.name}}</p>
67   - <p><b>{% trans 'Coordinator' %}: </b>{{course.professors}}</p>
  78 + <p><b>{% trans 'Course Name' %}: </b>{{ course.name }}</p>
  79 + <p><b>{% trans 'Coordinator' %}: </b>{% for professor in course.professors.all %}{% if not forloop.first %},{% endif %}
  80 + {{professor}}{% if forloop.last %}.{% endif %}{% endfor %}</p>
68 81 <p>
69 82 <b>{% trans 'Description' %}:</b>
70 83 <i>
71   - {{course.description}}
  84 + {{ course.objectivies }}
72 85 </i>
73 86 </p>
74 87  
... ... @@ -122,8 +135,7 @@
122 135 </div>
123 136 </div>
124 137 <div class="cards-detail">
125   - {% if request.GET.category == 'all' or none or request.GET.category == '' %}
126   - {% for subject in subjects %}
  138 + {% for subject in subjects %}
127 139 <div class="panel panel-default panel_{{ subject.id }}">
128 140 <div class="panel-heading heading_{{subject.id}} subject ui-sortable-handle">
129 141 <div class="row">
... ... @@ -177,65 +189,8 @@
177 189 </div>
178 190 </div>
179 191 </div>
180   - {% endfor %}
181   - {% else %}
182   - {% for subject in subjects_category %}
183   - {% if subject.category.name == request.GET.category %}
184   - <div class="panel panel-info panel_{{ subject.id }}">
185   - <div class="panel-heading heading_{{subject.id}} subject ui-sortable-handle" role="tab">
186   - <div class="row">
187   - <div class="col-md-1 moreAccordion" data-toggle="collapse" data-parent="#accordion-{{subject.slug}}" href=".collapseSubject-{{subject.slug}}" aria-expanded="false" aria-controls="collapseSubject-{{subject.slug}}">
188   - <button class="btn btn-default btn-sm caret-square"><i class="fa fa-caret-square-o-down fa-2x" aria-hidden="true"></i></button>
189   - </div>
190   - <div class="col-xs-9 col-md-4 titleTopic">
191   - <a role="button" href="{% url 'course:view_subject' subject.slug %}">
192   - <h4>{{subject.name}}</h4>
193   - </a>
194   - </div>
195   - {% if user|has_role:'professor' and user in subject.professors or user|has_role:'system_admin' %}
196   - <div class="col-xs-3 col-md-6" id="divMoreActions">
197   - <div class="btn-group">
198   - <button class="btn btn-default btn-sm dropdown-toggle" type="button" id="moreActions" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
199   - <i class="fa fa-ellipsis-v fa-2x" aria-hidden="true"></i>
200   - </button>
201   - <ul class="dropdown-menu" aria-labelledby="moreActions">
202   - <li><a href="javascript:void(0)" data-toggle="modal" data-target="#myModal3"><i class="fa fa-pencil fa-fw" aria-hidden="true"></i>&nbsp; {% trans 'Replicate' %}</a></li>
203   - <li><a href="javascript:void(0)" data-toggle="modal" data-target="#removeSubject2"><i class="fa fa-trash fa-fw" aria-hidden="true"></i>&nbsp; {% trans 'Remove' %}</a></li>
204   - </ul>
205   - </div>
206   - </div>
207   - {% endif %}
208   - {% if user|show_subject_subscribe:subject %}
209   - <div class="col-xs-3 col-md-2">
210   - <a onclick="subscribe($(this), '{% url 'course:subscribe_subject' subject.slug %}', {{ subject.id }}, '{% trans 'Are you sure you want to subscribe to this subject?' %}')" class="btn btn-sm btn-primary btn-raised">{% trans 'Subscribe' %}</a>
211   - </div>
212   - {% endif %}
213   - </div>
214   - </div>
215   - <div class="panel-collapse collapseSubject-{{subject.slug}} collapse in" aria-labelledby="heading_{{subject.id}}" aria-expanded="true" aria-hidden="false">
216   - <div class="panel-body">
217   - <p><b>{% trans "Professor" %}: </b>{% for professor in subject.professors.all %}{% if not forloop.first %},{% endif %}
218   - {{professor}}{% if forloop.last %}.{% endif %}{% endfor %}</p>
219   - <p>
220   - <b>{% trans "Description" %}: </b>
221   - <i>
222   - {{subject.description}}
223   - </i>
224   - </p>
225   - <div class="row">
226   - <div class="col-xs-6 col-md-6">
227   - <p><b>{% trans "Begining" %}: </b>{{subject.init_date}}</p>
228   - </div>
229   - <div class="col-xs-6 col-md-6">
230   - <p><b>{% trans "End" %}: </b>{{subject.end_date}}</p>
231   - </div>
232   - </div>
233   - </div>
234   - </div>
235   - </div>
236   - {% endif %}
237   - {% endfor %}
238   - {% endif %}
  192 + {% endfor %}
  193 +
239 194  
240 195 {% if user|has_role:'professor' and user in course.professors.all or user|has_role:'system_admin' %}
241 196  
... ...
courses/urls.py
... ... @@ -6,7 +6,10 @@ urlpatterns = [
6 6 url(r'^create/$', views.CreateCourseView.as_view(), name='create'),
7 7 url(r'^replicate_course/(?P<slug>[\w_-]+)/$', views.ReplicateCourseView.as_view(), name='replicate_course'),
8 8 url(r'^edit/(?P<slug>[\w_-]+)/$', views.UpdateCourseView.as_view(), name='update'),
9   - url(r'^(?P<slug>[\w_-]+)/$', views.CourseView.as_view(), name='view'),
  9 + url(r'^(?P<slug>[\w_-]+)/', include([
  10 + url(r'^$', views.CourseView.as_view(), name='view'),
  11 + url(r'^(?P<category>[\w_-]+)/$', views.CourseView.as_view(), name='view_filter')
  12 + ])),
10 13 url(r'^delete/(?P<slug>[\w_-]+)/$', views.DeleteCourseView.as_view(), name='delete'),
11 14 url(r'^subscribe/(?P<slug>[\w_-]+)/$', views.subscribe_course, name='subscribe'),
12 15 url(r'^category/(?P<slug>[\w_-]+)/$', views.FilteredView.as_view(), name='filter'),
... ...
courses/views.py
... ... @@ -211,12 +211,19 @@ class CourseView( NotificationMixin, generic.DetailView):
211 211 context = super(CourseView, self).get_context_data(**kwargs)
212 212 course = get_object_or_404(Course, slug = self.kwargs.get('slug'))
213 213  
  214 + category_sub = self.kwargs.get('category', None)
  215 +
214 216 if has_role(self.request.user,'system_admin'):
215 217 subjects = course.subjects.all()
216 218 elif has_role(self.request.user,'professor'):
217 219 subjects = course.subjects.filter(professors__in=[self.request.user])
218 220 elif has_role(self.request.user, 'student') or self.request.user is None:
219 221 subjects = course.subjects.filter(visible=True)
  222 +
  223 + if not category_sub is None:
  224 + cat = get_object_or_404(CategorySubject, slug = category_sub)
  225 + subjects = subjects.filter(category = cat)
  226 +
220 227 context['subjects'] = subjects
221 228  
222 229 if has_role(self.request.user,'system_admin'):
... ... @@ -238,13 +245,7 @@ class CourseView( NotificationMixin, generic.DetailView):
238 245  
239 246 subjects_category = Subject.objects.filter(category__name = self.request.GET.get('category'))
240 247  
241   - none = None
242   - q = self.request.GET.get('category', None)
243   - if q is None:
244   - none = True
245   - context['none'] = none
246   -
247   - context['subjects_category'] = subjects_category
  248 + context['category'] = category_sub
248 249 context['categorys_subjects'] = categorys_subjects
249 250 context['courses'] = courses
250 251 context['course'] = course
... ...