##// END OF EJS Templates
Show file metadata for all attachments
neko259 -
r1300:cc50b489 default
parent child Browse files
Show More
@@ -1,68 +1,67 b''
1 1 from django.template.defaultfilters import filesizeformat
2 2 from django.contrib.staticfiles.templatetags.staticfiles import static
3 3
4 4 FILE_STUB_IMAGE = 'images/file.png'
5 5
6 6 FILE_TYPE_WEBM = 'webm'
7 7 FILE_TYPE_SVG = 'svg'
8 8 FILE_TYPES_AUDIO = (
9 9 'ogg',
10 10 'mp3',
11 11 )
12 12
13 13
14 14 def get_viewers():
15 15 return AbstractViewer.__subclasses__()
16 16
17 17
18 18 class AbstractViewer:
19 19 def __init__(self, file, file_type):
20 20 self.file = file
21 21 self.file_type = file_type
22 22
23 23 @staticmethod
24 24 def supports(file_type):
25 25 return True
26 26
27 27 def get_view(self):
28 return '<div class="image"><a href="{}">'\
28 return '<div class="image">'\
29 '{}'\
30 '<div class="image-metadata">{}, {}</div>'\
31 '</div>'.format(self.get_format_view(),
32 self.file_type, filesizeformat(self.file.size))
33
34 def get_format_view(self):
35 return '<a href="{}">'\
29 36 '<img src="{}" width="200" height="150"/>'\
30 '</a>'\
31 '<div class="image-metadata">{}, {}</div>'\
32 '</div>'.format(self.file.url, static(FILE_STUB_IMAGE),
33 self.file_type, filesizeformat(self.file.size))
37 '</a>'.format(self.file.url,static(FILE_STUB_IMAGE))
34 38
35 39
36 40 class WebmViewer(AbstractViewer):
37 41 @staticmethod
38 42 def supports(file_type):
39 43 return file_type == FILE_TYPE_WEBM
40 44
41 def get_view(self):
42 return '<div class="image">'\
43 '<video width="200" height="150" controls src="{}"/>'\
44 '</div>'.format(self.file.url)
45 def get_format_view(self):
46 return '<video width="200" height="150" controls src="{}"></video>'\
47 .format(self.file.url)
45 48
46 49
47 50 class AudioViewer(AbstractViewer):
48 51 @staticmethod
49 52 def supports(file_type):
50 53 return file_type in FILE_TYPES_AUDIO
51 54
52 def get_view(self):
53 return '<div class="image">' \
54 '<audio controls src="{}"/>' \
55 '</div>'.format(self.file.url)
55 def get_format_view(self):
56 return '<audio controls src="{}"></audio>'.format(self.file.url)
56 57
57 58
58 59 class SvgViewer(AbstractViewer):
59 60 @staticmethod
60 61 def supports(file_type):
61 62 return file_type == FILE_TYPE_SVG
62 63
63 def get_view(self):
64 return '<div class="image">'\
65 '<a class="thumb" href="{}">'\
66 '<img class="post-image-preview" width="200" height="150" src="{}"/>'\
67 '</a>'\
68 '</div>'.format(self.file.url, self.file.url)
64 def get_format_view(self):
65 return '<a class="thumb" href="{}">'\
66 '<img class="post-image-preview" width="200" height="150" src="{}" />'\
67 '</a>'.format(self.file.url, self.file.url)
General Comments 0
You need to be logged in to leave comments. Login now