Commit b5c04ff0c60992adb9500b7b4f52fd9a3b188492
1 parent
e6b8578a
Exists in
master
and in
5 other branches
ViewLink done, fixed issues with create link and finished, included permissions …
…in views, updated some fields, solved minor issues. [Issues: #120,#121,#122]
Showing
1 changed file
with
53 additions
and
8 deletions
Show diff stats
links/views.py
@@ -4,42 +4,87 @@ from django.core.urlresolvers import reverse_lazy | @@ -4,42 +4,87 @@ from django.core.urlresolvers import reverse_lazy | ||
4 | from django.contrib import messages | 4 | from django.contrib import messages |
5 | from django.utils.translation import ugettext_lazy as _ | 5 | from django.utils.translation import ugettext_lazy as _ |
6 | from django.shortcuts import get_object_or_404,redirect | 6 | from django.shortcuts import get_object_or_404,redirect |
7 | +from django.contrib.auth.mixins import LoginRequiredMixin | ||
8 | +from rolepermissions.mixins import HasRoleMixin | ||
7 | 9 | ||
10 | +from courses.models import Topic | ||
8 | from .models import Link | 11 | from .models import Link |
9 | from .forms import * | 12 | from .forms import * |
10 | 13 | ||
11 | # Create your views here. | 14 | # Create your views here. |
12 | -class CreateLink(generic.CreateView): | 15 | +class CreateLink(LoginRequiredMixin, HasRoleMixin, generic.CreateView): |
16 | + allowed_roles = ['professor', 'system_admin'] | ||
13 | template_name = 'links/create_link.html' | 17 | template_name = 'links/create_link.html' |
14 | form_class = CreateLinkForm | 18 | form_class = CreateLinkForm |
15 | success_url = reverse_lazy('course:manage') | 19 | success_url = reverse_lazy('course:manage') |
16 | context_object_name = 'form' | 20 | context_object_name = 'form' |
17 | 21 | ||
18 | def form_valid(self, form): | 22 | def form_valid(self, form): |
19 | - form.save() | 23 | + self.object = form.save(commit = False) |
24 | + topic = get_object_or_404(Topic, slug = self.kwargs.get('slug')) | ||
25 | + self.object.topic = topic | ||
20 | messages.success(self.request, _('Link created successfully!')) | 26 | messages.success(self.request, _('Link created successfully!')) |
21 | - messages.error(self.request, _("An error occurred when trying to create the link")) | ||
22 | - return super(CreateLink, self).form_valid(form) | 27 | + #messages.error(self.request, _("An error occurred when trying to create the link")) |
28 | + self.object.save() | ||
29 | + #return self.success_url | ||
30 | + return self.get_success_url() | ||
23 | def get_context_data(self,**kwargs): | 31 | def get_context_data(self,**kwargs): |
24 | context = {} | 32 | context = {} |
25 | context['links'] = Link.objects.all() | 33 | context['links'] = Link.objects.all() |
26 | context['form'] = CreateLinkForm | 34 | context['form'] = CreateLinkForm |
35 | + topic = get_object_or_404(Topic, slug = self.kwargs.get('slug')) | ||
36 | + context["topic"] = topic | ||
27 | return context | 37 | return context |
28 | - | 38 | + def get_success_url(self): |
39 | + self.success_url = redirect('course:links:render_link', id = self.object.id) | ||
40 | + return self.success_url | ||
29 | def deleteLink(request,linkname): | 41 | def deleteLink(request,linkname): |
30 | link = get_object_or_404(Link,name = linkname) | 42 | link = get_object_or_404(Link,name = linkname) |
31 | link.delete() | 43 | link.delete() |
32 | template_name = 'links/delete_link.html' | 44 | template_name = 'links/delete_link.html' |
33 | messages.success(request,_("Link deleted Successfully!")) | 45 | messages.success(request,_("Link deleted Successfully!")) |
34 | - messages.error(request, _("An error occurred when trying to delete the link")) | 46 | + #messages.error(request, _("An error occurred when trying to delete the link")) |
35 | return redirect('course:manage') | 47 | return redirect('course:manage') |
48 | + | ||
49 | +def render_link(request, id): | ||
50 | + template_name = 'links/render_link.html' | ||
51 | + context = { | ||
52 | + 'link': get_object_or_404(Link, id = id) | ||
53 | + } | ||
54 | + return render(request, template_name, context) | ||
55 | + | ||
36 | #Referencia no delete link para adicionar quando resolver o problema do context {% url 'course:delete' link.name %} | 56 | #Referencia no delete link para adicionar quando resolver o problema do context {% url 'course:delete' link.name %} |
37 | -class UpdateLink(generic.UpdateView): | 57 | +class UpdateLink(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): |
58 | + allowed_roles = ['professor', 'system_admin'] | ||
38 | template_name = 'links/update_link.html' | 59 | template_name = 'links/update_link.html' |
39 | form_class = UpdateLinkForm | 60 | form_class = UpdateLinkForm |
40 | - success_url = reverse_lazy('course:manage') | 61 | + success_url = reverse_lazy('course:links:render_link') |
41 | def form_valid(self, form): | 62 | def form_valid(self, form): |
42 | form.save() | 63 | form.save() |
43 | messages.success(self.request, _('Link updated successfully!')) | 64 | messages.success(self.request, _('Link updated successfully!')) |
44 | 65 | ||
45 | return super(UpdateLink, self).form_valid(form) | 66 | return super(UpdateLink, self).form_valid(form) |
67 | + | ||
68 | + def get_object(self, queryset=None): | ||
69 | + self.object = get_object_or_404(Link, slug = self.kwargs.get('slug')) | ||
70 | + print(self.object.link_description) | ||
71 | + return self.object | ||
72 | + def get_success_url(self): | ||
73 | + self.success_url = redirect('course:links:render_link', id = self.object.id) | ||
74 | + return self.success_url | ||
75 | +class ViewLink(LoginRequiredMixin,HasRoleMixin,generic.DetailView): | ||
76 | + allowed_roles = ['professor', 'system_admin'] | ||
77 | + template_name = 'links/view_link.html' | ||
78 | + success_url = reverse_lazy('course:links:render_link') | ||
79 | + context_object_name = 'link' | ||
80 | + def get_context_data(self,**kwargs): | ||
81 | + context = {} | ||
82 | + link = Link.objects.get(slug = self.kwargs.get('slug')) | ||
83 | + context['link'] = link | ||
84 | + return context | ||
85 | + def get_success_url(self): | ||
86 | + self.success_url = redirect('course:links:render_link', id = self.object.id) | ||
87 | + return self.success_url | ||
88 | + def get_queryset(self): | ||
89 | + self.queryset = Link.objects.filter(slug = self.kwargs.get('slug')) | ||
90 | + return self.queryset |