Commit b9b059c8bb933cdb609e0624145fa4700bf35bd4
1 parent
a16ea53e
Exists in
master
and in
5 other branches
Adding subject categories list [Issue: #206]
Showing
3 changed files
with
33 additions
and
74 deletions
Show diff stats
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> {% 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> {% 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 | ... | ... |