Commit e936b207380022a1127af33d2a1804a44d94aab9

Authored by Jailson Dias
1 parent 10fcdf39

ajustes no icone dos arquivos e mensagem de sucesso quando craido um file #381

core/migrations/0003_auto_20161210_1541.py 0 → 100644
... ... @@ -0,0 +1,20 @@
  1 +# -*- coding: utf-8 -*-
  2 +# Generated by Django 1.10 on 2016-12-10 18:41
  3 +from __future__ import unicode_literals
  4 +
  5 +from django.db import migrations, models
  6 +
  7 +
  8 +class Migration(migrations.Migration):
  9 +
  10 + dependencies = [
  11 + ('core', '0002_auto_20161124_1217'),
  12 + ]
  13 +
  14 + operations = [
  15 + migrations.AlterField(
  16 + model_name='mimetype',
  17 + name='icon',
  18 + field=models.CharField(max_length=50, verbose_name='Icon'),
  19 + ),
  20 + ]
... ...
core/models.py
... ... @@ -7,15 +7,12 @@ from django.contrib.postgres.fields import JSONField
7 7  
8 8 class MimeType(models.Model):
9 9 typ = models.CharField(_('Type'), max_length=100, unique=True)
10   - icon = models.CharField(_('Icon'), max_length=50, unique=True)
  10 + icon = models.CharField(_('Icon'), max_length=50)
11 11  
12 12 class Meta:
13 13 verbose_name= _('Amadeus Mime Type')
14 14 verbose_name_plural = _('Amadeus Mime Types')
15 15  
16   - def get_icon(self, type):
17   - pass
18   -
19 16 def __str__(self):
20 17 return self.typ
21 18  
... ...
files/templates/files/create_file.html
... ... @@ -99,6 +99,7 @@
99 99 contentType: false,
100 100 success: function(data) {
101 101 $('#fileModal').modal('hide');
  102 + alertify.success('File successfully created!');
102 103 $('#list-topic{{ topic.id }}-files').append(data);
103 104 $('#list-topic{{ topic.id }}-files-edit').append(data);
104 105 },
... ... @@ -111,4 +112,4 @@
111 112 event.preventDefault();
112 113 });
113 114 </script>
114   -{% endblock script_file %}
115 115 \ No newline at end of file
  116 +{% endblock script_file %}
... ...
files/utils.py
1 1 mime_type_to_material_icons = {
2   - 'application/pdf': 'fa-file-pdf-o',
3   - 'text/plain': 'file-text-o',
4   - 'image/png': 'file-picture-o',
5   - 'image/jpeg': 'file-picture-o',
6   - 'application/msword': 'file-word-o',
7   - 'application/excel': 'file-powerpoint-o',
8   - 'application/vnd.ms-excel': 'file-powerpoint-o',
9   - 'application/x-excel': 'file-powerpoint-o',
10   - 'application/x-msexcel': 'file-powerpoint-o',
11   - 'application/mspowerpoint': 'file-powerpoint-o',
12   - 'application/powerpoint': 'file-powerpoint-o',
13   - 'application/vnd.ms-powerpoint': 'file-powerpoint-o',
14   - 'application/x-mspowerpoint': 'file-powerpoint-o',
15   -
16   -}
17 2 \ No newline at end of file
  3 +
  4 + # texto
  5 + 'application/vnd.amazon.ebook':'fa-file-text-o',
  6 + 'application/msword':'fa-file-word-o',
  7 + 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':'fa-file-word-o',
  8 + 'application/epub+zip':'fa-file-text-o',
  9 + 'application/vnd.oasis.opendocument.presentation':'fa-file-text-o',
  10 + 'application/vnd.oasis.opendocument.spreadsheet':'fa-file-text-o',
  11 + 'application/vnd.oasis.opendocument.text':'fa-file-text-o',
  12 + 'application/pdf':'fa-file-pdf-o',
  13 + 'application/vnd.ms-powerpoint':'fa-file-powerpoint-o',
  14 + 'application/vnd.openxmlformats-officedocument.presentationml.presentation':'fa-file-powerpoint-o',
  15 + 'application/vnd.ms-excel':'fa-file-excel-o',
  16 +
  17 +
  18 +
  19 + # codigos
  20 + 'application/x-csh':'fa-file-code-o',
  21 + 'text/css':'fa-file-code-o',
  22 + 'text/csv':'fa-file-code-o',
  23 + 'text/html':'fa-file-code-o',
  24 + 'application/java-archive':'fa-file-code-o',
  25 + 'application/js':'fa-file-code-o',
  26 + 'application/json':'fa-file-code-o',
  27 + 'application/rtf':'fa-file-code-o',
  28 + 'application/x-sh':'fa-file-code-o',
  29 + 'application/x-font-ttf':'fa-file-code-o',
  30 + 'application/x-font-woff':'fa-file-code-o',
  31 + 'application/xhtml+xml':'fa-file-code-o',
  32 + 'application/xml':'fa-file-code-o',
  33 +
  34 + # compactados
  35 + 'application/x-compressed':'fa-file-archive-o',
  36 + 'application/x-zip-compressed':'fa-file-archive-o',
  37 + 'application/zip':'fa-file-archive-o',
  38 + 'application/gzip':'fa-file-archive-o',
  39 + 'multipart/x-zip':'fa-file-archive-o',
  40 + 'application/octet-stream':'fa-file-archive-o',
  41 + 'application/x-bzip':'fa-file-archive-o',
  42 + 'application/x-bzip2':'fa-file-archive-o',
  43 + 'application/x-rar-compressed':'fa-file-archive-o',
  44 + 'application/x-rar':'fa-file-archive-o',
  45 + 'application/x-tar':'fa-file-archive-o',
  46 + 'application/x-7z-compressed':'fa-file-archive-o',
  47 +
  48 +
  49 + # tipos gerais
  50 + 'text':'fa-file-text-o',
  51 + 'multipart':'fa-file-o',
  52 + 'image':'fa-file-image-o',
  53 + 'audio':'fa-file-audio-o',
  54 + 'video':'fa-file-video-o',
  55 + 'application':'fa-file-o',
  56 + 'x-world':'fa-file-o',
  57 + 'drawing':'fa-file-image-o',
  58 + 'model':'fa-file-image-o',
  59 + 'x-conference':'fa-file-text-o',
  60 + 'i-world':'fa-file-text-o',
  61 + 'music':'fa-file-audio-o',
  62 + 'message':'fa-file-text-o',
  63 + 'x-music':'fa-file-audio-o',
  64 + 'www':'fa-file-code-o',
  65 + 'chemical':'fa-file-o',
  66 + 'paleovu':'fa-file-o',
  67 + 'xgl':'fa-file-movie-o',
  68 + 'other':'fa-file-o',
  69 +}
... ...
files/views.py
... ... @@ -50,33 +50,36 @@ class CreateFile(LoginRequiredMixin, HasRoleMixin, LogMixin, NotificationMixin,
50 50 self.object = form.save(commit = False)
51 51 topic = get_object_or_404(Topic, slug = self.kwargs.get('slug'))
52 52 self.object.topic = topic
53   -
  53 +
54 54 self.object.name = str(self.object)
55   -
  55 +
56 56  
57 57 # Set MimeType
58 58 file = self.request.FILES['file_url']
59 59 try:
60 60 if file:
61 61 file_type = file.content_type
62   -
63   - # Check if exist a mimetype in database
64   - try:
65   - self.object.file_type = MimeType.objects.get(typ = file_type)
66   - # Create if not
67   - except:
68   - mtype = MimeType.objects.create(
  62 + # criar o mime type caso não tenha no banco ainda
  63 + if (MimeType.objects.filter(typ = file_type).count()==0):
  64 + mime = file_type
  65 + if (not mime_type_to_material_icons.get(mime)):
  66 + mime = mime.split("/")[0]
  67 + if (not mime_type_to_material_icons.get(mime)):
  68 + mime = "other"
  69 + print (mime_type_to_material_icons.get(mime))
  70 + teste = mime_type_to_material_icons.get(mime)
  71 + mtype = MimeType(
69 72 typ = file_type,
70   - icon = mime_type_to_material_icons[file_type]
  73 + icon = teste
71 74 )
72 75 mtype.save()
73   - self.object.file_type = mtype
  76 + self.object.file_type = MimeType.objects.get(typ = file_type)
  77 +
74 78 except:
75 79 print('File not uploaded')
76   - # self.object.file_type = MimeType.objects.get(id = 1)
77 80  
78 81 self.object.save()
79   - #CREATE LOG
  82 + #CREATE LOG
80 83 self.log_context['topic_id'] = topic.id
81 84 self.log_context['topic_name'] = topic.name
82 85 self.log_context['topic_slug'] = topic.slug
... ... @@ -90,7 +93,7 @@ class CreateFile(LoginRequiredMixin, HasRoleMixin, LogMixin, NotificationMixin,
90 93  
91 94 #CREATE NOTIFICATION
92 95 super(CreateFile, self).createNotification(message="uploaded a File "+ self.object.name, actor=self.request.user,
93   - resource_name=self.object.name, resource_link= reverse('course:view_topic', args=[self.object.topic.slug]),
  96 + resource_name=self.object.name, resource_link= reverse('course:view_topic', args=[self.object.topic.slug]),
94 97 users=self.object.topic.subject.students.all())
95 98  
96 99 self.log_context['file_id'] = self.object.id
... ... @@ -125,7 +128,7 @@ class CreateFile(LoginRequiredMixin, HasRoleMixin, LogMixin, NotificationMixin,
125 128  
126 129 def get_success_url(self):
127 130 self.success_url = redirect('course:file:render_file', id = self.object.id)
128   -
  131 +
129 132 return self.success_url
130 133  
131 134  
... ... @@ -211,7 +214,7 @@ class UpdateFile(LoginRequiredMixin, HasRoleMixin, LogMixin, generic.UpdateView)
211 214  
212 215 def get_success_url(self):
213 216 self.success_url = reverse_lazy('course:file:render_file', args = (self.object.id, ))
214   -
  217 +
215 218 return self.success_url
216 219  
217 220  
... ... @@ -258,4 +261,4 @@ class DeleteFile(LoginRequiredMixin, HasRoleMixin, LogMixin, generic.DeleteView)
258 261  
259 262 super(DeleteFile, self).createLog(self.request.user, self.log_component, self.log_action, self.log_resource, self.log_context)
260 263  
261   - return reverse_lazy('course:view_topic', kwargs={'slug' : self.object.topic.slug})
262 264 \ No newline at end of file
  265 + return reverse_lazy('course:view_topic', kwargs={'slug' : self.object.topic.slug})
... ...