Commit 89ceed5d35c43a974c5b685d96bcb989122d73ce
1 parent
3acf26d5
Exists in
master
and in
5 other branches
Finished create link, solved minor issues, finished function to set the image li…
…nk and show it [Issues: #197,#198,#120]
Showing
1 changed file
with
28 additions
and
7 deletions
Show diff stats
links/views.py
| @@ -6,12 +6,16 @@ from django.utils.translation import ugettext_lazy as _ | @@ -6,12 +6,16 @@ from django.utils.translation import ugettext_lazy as _ | ||
| 6 | from django.shortcuts import get_object_or_404,redirect | 6 | from django.shortcuts import get_object_or_404,redirect |
| 7 | from django.contrib.auth.mixins import LoginRequiredMixin | 7 | from django.contrib.auth.mixins import LoginRequiredMixin |
| 8 | from rolepermissions.mixins import HasRoleMixin | 8 | from rolepermissions.mixins import HasRoleMixin |
| 9 | +from core.mixins import NotificationMixin | ||
| 10 | +from django.urls import reverse | ||
| 11 | +from django.core.files.base import ContentFile | ||
| 12 | + | ||
| 9 | 13 | ||
| 14 | +from .image_crawler import * | ||
| 10 | from courses.models import Topic | 15 | from courses.models import Topic |
| 11 | from .models import Link | 16 | from .models import Link |
| 12 | from .forms import * | 17 | from .forms import * |
| 13 | -from core.mixins import NotificationMixin | ||
| 14 | -from django.urls import reverse | 18 | + |
| 15 | 19 | ||
| 16 | # Create your views here. | 20 | # Create your views here. |
| 17 | class CreateLink(LoginRequiredMixin, HasRoleMixin, NotificationMixin, generic.CreateView): | 21 | class CreateLink(LoginRequiredMixin, HasRoleMixin, NotificationMixin, generic.CreateView): |
| @@ -20,19 +24,36 @@ class CreateLink(LoginRequiredMixin, HasRoleMixin, NotificationMixin, generic.Cr | @@ -20,19 +24,36 @@ class CreateLink(LoginRequiredMixin, HasRoleMixin, NotificationMixin, generic.Cr | ||
| 20 | form_class = CreateLinkForm | 24 | form_class = CreateLinkForm |
| 21 | success_url = reverse_lazy('course:manage') | 25 | success_url = reverse_lazy('course:manage') |
| 22 | context_object_name = 'form' | 26 | context_object_name = 'form' |
| 27 | + def form_invalid(self,form): | ||
| 28 | + context = super(CreateLink, self).form_invalid(form) | ||
| 29 | + context.status_code = 400 | ||
| 30 | + | ||
| 31 | + return context | ||
| 23 | 32 | ||
| 24 | def form_valid(self, form): | 33 | def form_valid(self, form): |
| 25 | self.object = form.save(commit = False) | 34 | self.object = form.save(commit = False) |
| 26 | topic = get_object_or_404(Topic, slug = self.kwargs.get('slug')) | 35 | topic = get_object_or_404(Topic, slug = self.kwargs.get('slug')) |
| 27 | self.object.topic = topic | 36 | self.object.topic = topic |
| 28 | - messages.success(self.request, _('Link created successfully!')) | ||
| 29 | - | ||
| 30 | self.object.save() | 37 | self.object.save() |
| 38 | + self.link = Link.objects.get(slug = self.object.slug) | ||
| 39 | + self.formato,self.baixado = get_images(self.link.link_url,self.link.slug) | ||
| 40 | + self.caminho = 'links/static/images/%s'%(self.link.slug)+'%s'%(self.formato) | ||
| 41 | + | ||
| 31 | super(CreateLink, self).createNotification(message="created a Link at "+ self.object.topic.name, actor=self.request.user, | 42 | super(CreateLink, self).createNotification(message="created a Link at "+ self.object.topic.name, actor=self.request.user, |
| 32 | - resource_name=self.object.name, resource_link= reverse('course:view_topic', args=[self.object.topic.slug]), | 43 | + resource_name=self.object.name, resource_link= reverse('course:view_topic', args=[self.object.topic.slug]), |
| 33 | users=self.object.topic.subject.students.all()) | 44 | users=self.object.topic.subject.students.all()) |
| 34 | - | 45 | + self.setImage() |
| 35 | return self.get_success_url() | 46 | return self.get_success_url() |
| 47 | + def setImage(self): | ||
| 48 | + if self.baixado: | ||
| 49 | + with open(self.caminho,'rb') as f: | ||
| 50 | + data = f.read() | ||
| 51 | + nome = '%s'%(self.link.slug)+"%s"%(self.formato) | ||
| 52 | + self.link.image.save(nome,ContentFile(data)) | ||
| 53 | + else: | ||
| 54 | + with open('links/static/images/default.jpg','rb') as f: | ||
| 55 | + data = f.read() | ||
| 56 | + self.link.image.save('default.jpg',ContentFile(data)) | ||
| 36 | def get_context_data(self,**kwargs): | 57 | def get_context_data(self,**kwargs): |
| 37 | context = {} | 58 | context = {} |
| 38 | context['links'] = Link.objects.all() | 59 | context['links'] = Link.objects.all() |
| @@ -48,7 +69,7 @@ def deleteLink(request,linkname): | @@ -48,7 +69,7 @@ def deleteLink(request,linkname): | ||
| 48 | link.delete() | 69 | link.delete() |
| 49 | template_name = 'links/delete_link.html' | 70 | template_name = 'links/delete_link.html' |
| 50 | messages.success(request,_("Link deleted Successfully!")) | 71 | messages.success(request,_("Link deleted Successfully!")) |
| 51 | - | 72 | + |
| 52 | return redirect('course:manage') | 73 | return redirect('course:manage') |
| 53 | 74 | ||
| 54 | def render_link(request, id): | 75 | def render_link(request, id): |