]> git.parisson.com Git - telemeta.git/commitdiff
add url related files, youtube detection, url img preview, prepare sound filtering...
authoryomguy <yomguy@parisson.com>
Fri, 4 Nov 2011 10:26:58 +0000 (11:26 +0100)
committeryomguy <yomguy@parisson.com>
Fri, 4 Nov 2011 10:26:58 +0000 (11:26 +0100)
telemeta/htdocs/js/application.js
telemeta/models/media.py
telemeta/templates/telemeta_default/mediaitem_detail.html
telemeta/templates/telemeta_default/mediaitem_related_edit.html
telemeta/templates/telemeta_default/search_criteria.html
telemeta/templatetags/telemeta_utils.py

index d9b6b3579a50cafa769d4c814d946f65cc006bd7..7d3e07d9a78a49a72e8a0220669ed8d6badf73fb 100644 (file)
@@ -50,7 +50,7 @@ function foldInfoBlocks() {
     var $J = jQuery;\r
     var extra = $J('.extraInfos');\r
     extra.find('.folded dl, .folded table').css('display', 'none');\r
-    extra.find('a').click(function() {\r
+    extra.find('h4').click(function() {\r
         $J(this).parents('.extraInfos').children().toggleClass('folded').find('dl, table').toggle(100);\r
         //toggle toggles the visibility of elements\r
         return false;\r
index ba12483d52760545a37c6ed66cfc792646b39d6e..fb68b8dbc4174fa3dfb1f1339f5b1637e2b6df84 100644 (file)
@@ -49,6 +49,7 @@ from telemeta.models.query import *
 from telemeta.models.instrument import *
 from telemeta.models.enum import *
 from django.forms import ModelForm
+from django.db.models.fields import URLField
 
 
 class MediaResource(ModelCore):
@@ -342,7 +343,8 @@ class MediaItemRelatedFile(MediaResource):
     date            = DateTimeField(_('date'), auto_now=True)
     description     = TextField(_('description'))
     author          = ForeignKey(User, related_name="related", verbose_name=_('author'))
-    mime_type       = CharField(_('mime_type'), blank=True)
+    mime_type       = CharField(_('mime_type'))
+    url             = CharField(_('url'), max_length=500)
     file            = FileField(_('file'), upload_to='items/%Y/%m/%d', db_column="filename")
     
     @property
@@ -352,7 +354,13 @@ class MediaItemRelatedFile(MediaResource):
         return self.id
 
     def is_image(self):
-        return 'image' in self.mime_type
+        is_url_image = False
+        if self.url:
+            url_types = ['.png', '.jpg', '.gif', '.jpeg']
+            for type in url_types:
+                if type in self.url:
+                    is_url_image = True
+        return 'image' in self.mime_type or is_url_image
         
     def save(self, force_insert=False, force_update=False):
         super(MediaItemRelatedFile, self).save(force_insert, force_update)
index e5b6c10db9dc8f1a2c2803a22500e1858fdf8c9d..65005d1953c46318a048fd8baae65a5c57438f79 100644 (file)
     {% endblock infos %}
 </div> <!-- with-rightcol -->
 
-<div class="infos">
+<div class="extraInfos">
         {% block related_files %}
         <div>
             <h4><a href="#">{% trans "Related files" %}</a></h4>
             {% if related_files %}
             <div class="instruments">
-                <table class="instruments">
+                <table class="instruments" width="100%">
                     <thead>
                         <tr>
-                            <td>{% field_label "MediaItemRelatedFile" "file" %}</td>
                             <td>{% field_label "MediaItemRelatedFile" "title" %}</td>
                             <td>{% field_label "MediaItemRelatedFile" "mime type" %}</td>
-                            <td>{% field_label "MediaItemRelatedFile" "author" %}</td>
                             <td>{% field_label "MediaItemRelatedFile" "preview" %}</td>
+                            <td>{% field_label "MediaItemRelatedFile" "author" %}</td>
                         </tr>
                     </thead>
                     <tbody>
                         {% for file in related_files %}
                         <tr>
-                            <td><a href="{% url telemeta-item-related-file item.public_id file.id %}">{% if file.file %}{{ file.file|get_filename }}{% endif %}</a></td>
-                            <td>{{ file.title }}</td>
+                            <td>
+                            {% if file.url %}
+                               <a href="{{ file.url }}">
+                                {% if file.title %}
+                                 {{ file.title }}
+                                {% else %} 
+                                 {{ file.url|get_filename }}
+                                {% endif %}
+                                </a>
+                            {% endif %}
+                            {% if file.file %}
+                              <a href="{% url telemeta-item-related-file item.public_id file.id %}">
+                                {% if file.title %}
+                                 {{ file.title }}
+                                {% else %} 
+                                 {{ file.file|get_filename }}
+                                {% endif %}
+                              </a>
+                            {% endif %}
+                            </td>
                             <td>{{ file.mime_type }}</td>
+                            <td>{% if file.is_image %}
+                                  {% if file.url %}
+                                   <a href="{{ file.url }}">
+                                   <img src="{{ file.url }}" style="width: 400px;" /></a>
+                                  {% else %}
+                                   <a href="{% url telemeta-item-related-file item.public_id file.id %}">
+                                   <img src="{% url telemeta-item-related-file item.public_id file.id %}" style="width: 400px;" /></a>
+                                   {% endif %}
+                                {% else %}
+                                {% if file.url %}
+                                 {% if "youtube" in file.url %}
+                                 <iframe width="420" height="315" src="{{ file.url|get_youtube }}" frameborder="0" allowfullscreen></iframe>
+                                 {% else %}
+                                 <a href="{{ file.url }}">link</a>
+                                 {% endif %}
+                                {% endif %}
+                                {% if file.file %}
+                                <a href="{% url telemeta-item-related-file item.public_id file.id %}">link</a>
+                                {% endif %}
+                                {% endif %}</td>
                             <td>{{ file.author }}</td>
-                            <td>{% if file.is_image %}<a href="{% url telemeta-item-related-file item.public_id file.id %}"><img src="{% url telemeta-item-related-file item.public_id file.id %}" style="width: 400px;" /></a>{% else %}<a href="{% url telemeta-item-related-file item.public_id file.id %}">link</a>{% endif %}</td>
                         </tr>
                         {% endfor %}
                     </tbody>
                 </table>
-                {% if user.is_authenticated and perms.telemeta.change_mediaitem %}
-                <a href="{% url telemeta-item-related_edit item.public_id %}" class="component_icon button icon_edit">{% trans "Edit"%} {% trans "related"%}</a>
-                {% endif %}
             </div>
             {% endif %}
+            {% if user.is_authenticated and perms.telemeta.change_mediaitem %}
+                <br /><a href="{% url telemeta-item-related_edit item.public_id %}" class="component_icon button icon_edit">{% trans "Edit"%} {% trans "related"%}</a>
+            {% endif %}
         </div>
         {% endblock related_files %}
     </div>
index 8a08f8018ac3455782789c5811aaf7a4f34a3739..2739d07465bf0e1d73a7af4eaaf510b1e9ff5346 100644 (file)
@@ -22,6 +22,7 @@
       <table>
         <tr><td><b>{% trans "File" %} :</b><td></td></tr>
         {% for field in form %}
+        <tr><td class="error">{{ field.errors }}</td></tr>
         <tr>
         {% if not "media_item" in field.html_name %}
             {% if "id" in field.html_name or "item" in field.html_name %}
index fcc36b0f61ec281c885e13d367b2d3063814fb62..6979aaf0200432a9eefd4542f6a64d2297a6d5f7 100644 (file)
@@ -126,7 +126,11 @@ $(document).ready(function () {
     </select>
     </p>
     {% endif %}
-
+    <!--
+    <p><label for="sound">{% trans "Sound" %}</label>
+    <input type="checkbox" name="sound" value="True" align="left" />
+    </p>
+    -->
 </fieldset>
 
 <p class="input">
index 30ffe65fc26d8b396ed2331597ec4b0551974ff8..ddc7329f19bb66ad28f46a9ea8657b2b8a2a6114 100644 (file)
@@ -322,5 +322,14 @@ def to_string(list):
         return ''
 
 @register.filter
-def get_filename(file):
-    return file.path.split(os.sep)[-1]
+def get_filename(object):
+    if isinstance(object, unicode):
+       return object.split('/')[-1]
+    else:
+        return object.path.split(os.sep)[-1]
+
+@register.filter
+def get_youtube(link):
+    link = link.split('&')
+    ref = link[0].split('=')[1]
+    return 'http://www.youtube.com/embed/'+ref