Commit f7799b4a40f706383b4a39bb953745dd4649b7b8
1 parent
7ed1cef1
Exists in
master
and in
3 other branches
Adjusting subject view page
Showing
4 changed files
with
78 additions
and
14 deletions
Show diff stats
amadeus/static/css/base/amadeus.css
amadeus/static/css/themes/green.css
... | ... | @@ -189,10 +189,14 @@ a, a:focus, a:hover { |
189 | 189 | color: #BDBDBD; |
190 | 190 | } |
191 | 191 | |
192 | -.panel-title{ /*Because we use an outer a tag*/ | |
192 | +.panel-title { /*Because we use an outer a tag*/ | |
193 | 193 | color: rgba(255,255,255,.84); |
194 | 194 | } |
195 | 195 | |
196 | +.category-header > h4.panel-title span { | |
197 | + color: #FFFFFF; | |
198 | +} | |
199 | + | |
196 | 200 | .accordion { |
197 | 201 | background: white; |
198 | 202 | } | ... | ... |
subjects/templates/subjects/view.html
... | ... | @@ -5,20 +5,72 @@ |
5 | 5 | |
6 | 6 | {% block javascript%} |
7 | 7 | {{ block.super }} |
8 | - | |
9 | 8 | {% endblock%} |
10 | 9 | |
11 | 10 | {% block breadcrumbs %} |
12 | 11 | {{ block.super }} |
13 | - {% breadcrumb 'Home' 'subjects:home' %} | |
14 | - | |
12 | + {% breadcrumb subject.category 'subjects:index' %} | |
13 | + {% breadcrumb subject 'subjects:view' subject.slug %} | |
15 | 14 | {% endblock %} |
16 | 15 | |
17 | - | |
18 | 16 | {% block content %} |
17 | + {% if subject.visible %} | |
18 | + <div class="panel panel-info subject-panel"> | |
19 | + <div class="panel-heading"> | |
20 | + {% elif request.user in subject.professor.all or request.user in subject.category.coordinators.all or request.user.is_staff %} | |
21 | + <div class="panel panel-info subject-panel-invisible"> | |
22 | + <div class="panel-heading panel-invisible"> | |
23 | + {% endif %} | |
24 | + <div class="row"> | |
25 | + <div class="col-md-12 category-header"> | |
26 | + <h4 class="panel-title" style="margin-top: 10px; margin-bottom: 8px"> | |
27 | + <span>{{subject.name}}</span> | |
28 | + </h4> | |
19 | 29 | |
20 | - {% include "subjects/subject_card.html" %} | |
30 | + <div class="col-md-5 pull-right category-card-items"> | |
31 | + {% if request.user in subject.professor.all or request.user in subject.category.coordinators.all or request.user.is_staff %} | |
32 | + <a href="" id="moreActions" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> | |
33 | + <i class="fa fa-ellipsis-v" aria-hidden="true"></i> | |
34 | + </a> | |
35 | + <ul class="dropdown-menu pull-right" aria-labelledby="moreActions"> | |
36 | + <li><a href="{% url 'subjects:replicate' subject.slug %}"><i class="fa fa-files-o fa-fw" aria-hidden="true"></i>{% trans 'Replicate' %}</a></li> | |
37 | + <li><a href="{% url 'subjects:update' subject.slug %}"><i class="fa fa-pencil fa-fw" aria-hidden="true"></i>{% trans 'Edit' %}</a></li> | |
38 | + <li><a href="javascript:delete_subject.get('{% url 'subjects:delete' subject.slug %}?view=index','#subject','#modal_subject')"><i class="fa fa-trash fa-fw" aria-hidden="true"></i> {% trans 'Remove' %}</a></li> | |
39 | + </ul> | |
40 | + {% endif %} | |
41 | + <a href="" ><i class="fa fa-list" aria-hidden="true"></i></a> | |
42 | + <a href=""><i class="fa fa-envelope-o" aria-hidden="true"></i></a> | |
43 | + <a href=""><i class="fa fa-exclamation-triangle" aria-hidden="true"></i></a> | |
44 | + <a href=""><i class="fa fa-bar-chart" aria-hidden="true"></i></a> | |
45 | + </div> | |
46 | + </div> | |
47 | + </div> | |
48 | + </div> | |
49 | + <div id="{{subject.slug}}" class="panel-collapse in collapse category-panel-content"> | |
50 | + <div class="row"> | |
51 | + <div class="col-md-6"> | |
52 | + {% if subject.professor.all|length > 0 %} | |
53 | + <h4><b>{% trans "Professor(s) " %}: </b> | |
54 | + {{ subject.professor.all|join:', ' }} | |
55 | + </h4> | |
56 | + {% else %} | |
57 | + <h4> {% trans "It doesn't possess professors" %} </h4> | |
58 | + {% endif %} | |
59 | + </div> | |
60 | + <div class="col-xs-6 col-md-3"> | |
61 | + <p><b>{% trans "Beginning" %}:</b> {{subject.init_date}}</p> | |
62 | + </div> | |
63 | + <div class="col-xs-6 col-md-3"> | |
64 | + <p><b>{% trans "End" %}:</b> {{subject.end_date}}</p> | |
65 | + </div> | |
66 | + </div> | |
21 | 67 | |
68 | + <p>{{subject.description|safe}}</p> | |
22 | 69 | |
23 | - | |
70 | + {% if request.user in subject.professor.all or request.user in subject.category.coordinators.all or request.user.is_staff %} | |
71 | + <a href="{% url 'subjects:create' subject.category.slug %}"><button class="btn btn-sm btn-primary btn-raised btn-block"> {% trans "Create new topic" %} </button></a> | |
72 | + {% endif %} | |
73 | + | |
74 | + </div> | |
75 | + </div> | |
24 | 76 | {% endblock content %} |
25 | 77 | \ No newline at end of file | ... | ... |
subjects/views.py
1 | 1 | |
2 | 2 | from django.shortcuts import render, get_object_or_404 |
3 | -from django.views.generic import ListView, CreateView, DeleteView, UpdateView, TemplateView | |
3 | +from django.views.generic import ListView, CreateView, DeleteView, UpdateView, TemplateView, DetailView | |
4 | 4 | from categories.models import Category |
5 | 5 | from django.core.urlresolvers import reverse_lazy |
6 | 6 | from rolepermissions.verifications import has_role |
... | ... | @@ -120,11 +120,12 @@ class IndexView(LoginRequiredMixin, ListView): |
120 | 120 | |
121 | 121 | return context |
122 | 122 | |
123 | -class SubjectCreateView(CreateView): | |
123 | +class SubjectCreateView(LoginRequiredMixin, CreateView): | |
124 | 124 | model = Subject |
125 | 125 | template_name = "subjects/create.html" |
126 | 126 | |
127 | 127 | login_url = reverse_lazy('users:login') |
128 | + redirect_field_name = 'next' | |
128 | 129 | form_class = CreateSubjectForm |
129 | 130 | |
130 | 131 | success_url = reverse_lazy('subject:index') |
... | ... | @@ -182,7 +183,7 @@ class SubjectCreateView(CreateView): |
182 | 183 | messages.success(self.request, _('Subject "%s" was registered on "%s" successfully!')%(self.object.name, self.object.category.name )) |
183 | 184 | return reverse_lazy('subjects:index') |
184 | 185 | |
185 | -class SubjectUpdateView(LogMixin, UpdateView): | |
186 | +class SubjectUpdateView(LoginRequiredMixin, LogMixin, UpdateView): | |
186 | 187 | model = Subject |
187 | 188 | form_class = CreateSubjectForm |
188 | 189 | template_name = 'subjects/update.html' |
... | ... | @@ -245,15 +246,17 @@ class SubjectDeleteView(LoginRequiredMixin, LogMixin, DeleteView): |
245 | 246 | return reverse_lazy('subjects:index') |
246 | 247 | |
247 | 248 | |
248 | -class SubjectDetailView(TemplateView): | |
249 | +class SubjectDetailView(LoginRequiredMixin, DetailView): | |
250 | + login_url = reverse_lazy("users:login") | |
251 | + redirect_field_name = 'next' | |
252 | + | |
249 | 253 | model = Subject |
250 | 254 | template_name = 'subjects/view.html' |
255 | + context_object_name = 'subject' | |
251 | 256 | |
252 | 257 | def get_context_data(self, **kwargs): |
253 | 258 | context = super(SubjectDetailView, self).get_context_data(**kwargs) |
254 | - context['subject'] = get_object_or_404(Subject, slug = self.kwargs.get('slug')) | |
255 | - context['show_buttons'] = False #So it doesn't show subscribe and access buttons | |
256 | - | |
259 | + context['title'] = self.object.name | |
257 | 260 | |
258 | 261 | return context |
259 | 262 | ... | ... |