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 | ... | ... |