Commit 313cd9b59acc77fb5a41c1fb78a252d4607ba6c0
1 parent
3b4f7742
Exists in
master
and in
5 other branches
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')) | ... | ... |