%!
from os import sep, path
from random import randrange
%>
<%doc>
Dec 10, 2010. This Mako junk is very unreadable. This comment marks the
beginning of the deprecation of these defs and the writing of attributes
on oldCoreObjects.File that replicate and improve upon their functionality.
%doc>
<%def name="fileView(file)">
% if app_globals.allowedFileTypes[file.MIMEtype]:
<% fileType = app_globals.allowedFileTypes[file.MIMEtype] %>
% else:
<% fileType = file.MIMEtype.split('/')[0] %>
% endif
${self.displayFileMetaData(file, fileType)}
${self.displayAssociatedForms(file)}
${self.displayFileButtons(file)}
${self.displayFile(file, fileType)}
%def>
<%def name="fileViewShort(file)">
% if app_globals.allowedFileTypes[file.MIMEtype]:
<% fileType = app_globals.allowedFileTypes[file.MIMEtype] %>
% else:
<% fileType = file.MIMEtype.split('/')[0] %>
% endif
${self.displayFileMetaData(file, fileType)}
${self.displayFile(file, fileType)}
%def>
<%def name="displayFileMetaData(file, fileType)">
ID | ${file.id} |
name | ${file.name} |
type | ${fileType} |
size | ${h.pretty_filesize(file.size)} |
% if file.description:
description | ${file.description} |
% endif
% if file.utteranceType:
utterance type | ${file.utteranceType} |
% endif
enterer | ${file.enterer.firstName} ${file.enterer.lastName} |
% if file.speaker:
speaker | ${file.speaker.firstName} ${file.speaker.lastName} |
% endif
% if file.elicitor:
elicitor | ${file.elicitor.firstName} ${file.elicitor.lastName} |
% endif
% if file.dateElicited:
date elicited | ${file.dateElicited.strftime('%b %d, %Y')} |
% endif
time entered | ${file.datetimeEntered.strftime('%b %d, %Y at %I:%M %p')} |
last updated | ${file.datetimeModified.strftime('%b %d, %Y at %I:%M %p')} |
%def>
<%def name="displayFileButtons(file)">
%def>
<%def name="displayFile(file, fileType)">
<% fileReference = url('retrieve', path=file.name) %>
% if fileType == 'image':
<% self.displayImage(file, fileReference) %>
% elif fileType == 'audio':
<% self.displayAudio(file, fileReference) %>
% elif fileType == 'video':
<% self.displayVideo(file, fileReference) %>
% else:
<% self.displayTextual(file, fileReference) %>
% endif
%def>
<%def name="displayImage(file, fileReference)">
<% fileName = path.splitext(file.name)[0] %>
<% buttonID = fileName + 'Button' %>
show image
%def>
<%doc>
mp3 ogg wav au/snd aif/aifc/aiff
Firefox (Linux, Mac)N Y Y N N
Chrome (Linux) Y Y N N N
Safari (Mac) Y N N Y N
%doc>
<%def name="displayAudio(file, fileReference)">
${self.insertAudioJavaScript()}
<%
fileName = file.name.replace('.', '_')
uniqueNo = str(randrange(0,1000))
uniqueFileName = fileName + uniqueNo
%>
play audio
link to audio
%def>
<%def name="displayVideo(file, fileReference)">
video to be displayed...
%def>
<%def name="displayTextual(file, fileReference)">
<% fileExtension = file.name.split('.')[-1] %>
link to text
%def>
<%def name="displayAssociatedForms(file)">
% for form in file.forms:
<%
maxLen = 20
transcription = h.clip(form.grammaticality + form.transcription, maxLen)
gloss = h.clip(form.glosses[0].glossGrammaticality + form.glosses[0].gloss, maxLen)
%>
Associated Form ${form.id}:
${h.storageToOutputTranslate(transcription)}
‘${h.literal(gloss)}’
% endfor
%def>
<%def name="insertAudioJavaScript()">
%def>