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 | 4 | from django.contrib import messages |
5 | 5 | from django.utils.translation import ugettext_lazy as _ |
6 | 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 | 11 | from .models import Link |
9 | 12 | from .forms import * |
10 | 13 | |
11 | 14 | # Create your views here. |
12 | -class CreateLink(generic.CreateView): | |
15 | +class CreateLink(LoginRequiredMixin, HasRoleMixin, generic.CreateView): | |
16 | + allowed_roles = ['professor', 'system_admin'] | |
13 | 17 | template_name = 'links/create_link.html' |
14 | 18 | form_class = CreateLinkForm |
15 | 19 | success_url = reverse_lazy('course:manage') |
16 | 20 | context_object_name = 'form' |
17 | 21 | |
18 | 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 | 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 | 31 | def get_context_data(self,**kwargs): |
24 | 32 | context = {} |
25 | 33 | context['links'] = Link.objects.all() |
26 | 34 | context['form'] = CreateLinkForm |
35 | + topic = get_object_or_404(Topic, slug = self.kwargs.get('slug')) | |
36 | + context["topic"] = topic | |
27 | 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 | 41 | def deleteLink(request,linkname): |
30 | 42 | link = get_object_or_404(Link,name = linkname) |
31 | 43 | link.delete() |
32 | 44 | template_name = 'links/delete_link.html' |
33 | 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 | 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 | 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 | 59 | template_name = 'links/update_link.html' |
39 | 60 | form_class = UpdateLinkForm |
40 | - success_url = reverse_lazy('course:manage') | |
61 | + success_url = reverse_lazy('course:links:render_link') | |
41 | 62 | def form_valid(self, form): |
42 | 63 | form.save() |
43 | 64 | messages.success(self.request, _('Link updated successfully!')) |
44 | 65 | |
45 | 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 | ... | ... |