Commit 313cd9b59acc77fb5a41c1fb78a252d4607ba6c0

Authored by Gustavo Bernardo
1 parent 3b4f7742

Update link fixed [Issue:#122]

Showing 1 changed file with 36 additions and 10 deletions   Show diff stats
links/views.py
... ... @@ -62,7 +62,7 @@ class CreateLink(LoginRequiredMixin, HasRoleMixin, NotificationMixin, generic.Cr
62 62 context["topic"] = topic
63 63 return context
64 64 def get_success_url(self):
65   - self.success_url = redirect('course:links:render_link', id = self.object.id)
  65 + self.success_url = redirect('course:links:render_link', slug = self.object.slug)
66 66 return self.success_url
67 67 def deleteLink(request,linkname):
68 68 link = get_object_or_404(Link,name = linkname)
... ... @@ -72,10 +72,10 @@ def deleteLink(request,linkname):
72 72  
73 73 return redirect('course:manage')
74 74  
75   -def render_link(request, id):
  75 +def render_link(request, slug):
76 76 template_name = 'links/render_link.html'
77 77 context = {
78   - 'link': get_object_or_404(Link, id = id)
  78 + 'link': get_object_or_404(Link, slug = slug)
79 79 }
80 80 return render(request, template_name, context)
81 81  
... ... @@ -85,18 +85,44 @@ class UpdateLink(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
85 85 template_name = 'links/update_link.html'
86 86 form_class = UpdateLinkForm
87 87 success_url = reverse_lazy('course:links:render_link')
88   - def form_valid(self, form):
89   - form.save()
90   - messages.success(self.request, _('Link updated successfully!'))
91 88  
92   - return super(UpdateLink, self).form_valid(form)
  89 + def form_invalid(self,form):
  90 + context = super(UpdateLink, self).form_invalid(form)
  91 + context.status_code = 400
93 92  
  93 + return context
  94 + def form_valid(self, form):
  95 + formulario = form
  96 + if formulario.has_changed():
  97 + print(formulario.changed_data)
  98 + if 'link_url' in formulario.changed_data:
  99 + self.object = form.save()
  100 + self.link = Link.objects.get(slug = self.object.slug)
  101 + self.formato,self.baixado = get_images(self.link.link_url,self.link.slug)
  102 + self.caminho = 'links/static/images/%s'%(self.link.slug)+'%s'%(self.formato)
  103 + self.setImage()
  104 + else:
  105 + form.save()
  106 + else:
  107 + form.save()
  108 + return super(UpdateLink, self).form_valid(form)
  109 + #self.setImage()
  110 + #return self.get_success_url()
  111 + def setImage(self):
  112 + if self.baixado:
  113 + with open(self.caminho,'rb') as f:
  114 + data = f.read()
  115 + nome = '%s'%(self.link.slug)+"%s"%(self.formato)
  116 + self.link.image.save(nome,ContentFile(data))
  117 + else:
  118 + with open('links/static/images/default.jpg','rb') as f:
  119 + data = f.read()
  120 + self.link.image.save('default.jpg',ContentFile(data))
94 121 def get_object(self, queryset=None):
95 122 self.object = get_object_or_404(Link, slug = self.kwargs.get('slug'))
96   - print(self.object.link_description)
97 123 return self.object
98 124 def get_success_url(self):
99   - self.success_url = redirect('course:links:render_link', id = self.object.id)
  125 + self.success_url = reverse_lazy('course:links:render_link', args = (self.object.slug, ))
100 126 return self.success_url
101 127 class ViewLink(LoginRequiredMixin,HasRoleMixin,generic.DetailView):
102 128 allowed_roles = ['professor', 'system_admin']
... ... @@ -109,7 +135,7 @@ class ViewLink(LoginRequiredMixin,HasRoleMixin,generic.DetailView):
109 135 context['link'] = link
110 136 return context
111 137 def get_success_url(self):
112   - self.success_url = redirect('course:links:render_link', id = self.object.id)
  138 + self.success_url = redirect('course:links:render_link', slug = self.object.slug)
113 139 return self.success_url
114 140 def get_queryset(self):
115 141 self.queryset = Link.objects.filter(slug = self.kwargs.get('slug'))
... ...