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,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')) |