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,7 +62,7 @@ class CreateLink(LoginRequiredMixin, HasRoleMixin, NotificationMixin, generic.Cr
62 context["topic"] = topic 62 context["topic"] = topic
63 return context 63 return context
64 def get_success_url(self): 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 return self.success_url 66 return self.success_url
67 def deleteLink(request,linkname): 67 def deleteLink(request,linkname):
68 link = get_object_or_404(Link,name = linkname) 68 link = get_object_or_404(Link,name = linkname)
@@ -72,10 +72,10 @@ def deleteLink(request,linkname): @@ -72,10 +72,10 @@ def deleteLink(request,linkname):
72 72
73 return redirect('course:manage') 73 return redirect('course:manage')
74 74
75 -def render_link(request, id): 75 +def render_link(request, slug):
76 template_name = 'links/render_link.html' 76 template_name = 'links/render_link.html'
77 context = { 77 context = {
78 - 'link': get_object_or_404(Link, id = id) 78 + 'link': get_object_or_404(Link, slug = slug)
79 } 79 }
80 return render(request, template_name, context) 80 return render(request, template_name, context)
81 81
@@ -85,18 +85,44 @@ class UpdateLink(LoginRequiredMixin, HasRoleMixin, generic.UpdateView): @@ -85,18 +85,44 @@ class UpdateLink(LoginRequiredMixin, HasRoleMixin, generic.UpdateView):
85 template_name = 'links/update_link.html' 85 template_name = 'links/update_link.html'
86 form_class = UpdateLinkForm 86 form_class = UpdateLinkForm
87 success_url = reverse_lazy('course:links:render_link') 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 def get_object(self, queryset=None): 121 def get_object(self, queryset=None):
95 self.object = get_object_or_404(Link, slug = self.kwargs.get('slug')) 122 self.object = get_object_or_404(Link, slug = self.kwargs.get('slug'))
96 - print(self.object.link_description)  
97 return self.object 123 return self.object
98 def get_success_url(self): 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 return self.success_url 126 return self.success_url
101 class ViewLink(LoginRequiredMixin,HasRoleMixin,generic.DetailView): 127 class ViewLink(LoginRequiredMixin,HasRoleMixin,generic.DetailView):
102 allowed_roles = ['professor', 'system_admin'] 128 allowed_roles = ['professor', 'system_admin']
@@ -109,7 +135,7 @@ class ViewLink(LoginRequiredMixin,HasRoleMixin,generic.DetailView): @@ -109,7 +135,7 @@ class ViewLink(LoginRequiredMixin,HasRoleMixin,generic.DetailView):
109 context['link'] = link 135 context['link'] = link
110 return context 136 return context
111 def get_success_url(self): 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 return self.success_url 139 return self.success_url
114 def get_queryset(self): 140 def get_queryset(self):
115 self.queryset = Link.objects.filter(slug = self.kwargs.get('slug')) 141 self.queryset = Link.objects.filter(slug = self.kwargs.get('slug'))