summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2012-04-16 00:37:35 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2012-04-16 00:37:35 +0200
commitb633752d5dcf26a94048d267f98738bf5dbcdbda (patch)
tree8276efc350edcd768febd6dca92c7110cdac9d32
parent6cb771105f6f63613e7e143282d599225873eb69 (diff)
downloadChimère-b633752d5dcf26a94048d267f98738bf5dbcdbda.tar.bz2
Chimère-b633752d5dcf26a94048d267f98738bf5dbcdbda.zip
Work on multimedia files visibility
* Add a new distant picture type (refs #339) * Handle differently multimedia files in descriptions (refs #337, refs #338)
-rw-r--r--chimere/default_settings.py2
-rw-r--r--chimere/fixtures/initial_data.json11
-rw-r--r--chimere/models.py11
-rw-r--r--chimere/static/chimere/css/styles.css28
-rw-r--r--chimere/templates/chimere/blocks/multimedia_file.html18
-rw-r--r--chimere/templates/chimere/detail.html32
-rw-r--r--chimere/templatetags/chimere_tags.py7
7 files changed, 76 insertions, 33 deletions
diff --git a/chimere/default_settings.py b/chimere/default_settings.py
index fc5177a..7b7d1c3 100644
--- a/chimere/default_settings.py
+++ b/chimere/default_settings.py
@@ -44,3 +44,5 @@ CHIMERE_DEFAULT_CATEGORIES = [1]
#displayOutsideMaxExtent: true, wrapDateLine: true})''' # OSM cyclemap
CHIMERE_MAP_LAYER = "new OpenLayers.Layer.OSM.Mapnik('Mapnik')" # OSM mapnik map
+# display picture inside the description by default or inside a galery?
+CHIMERE_MINIATURE_BY_DEFAULT = True
diff --git a/chimere/fixtures/initial_data.json b/chimere/fixtures/initial_data.json
index 4d1af9b..106b493 100644
--- a/chimere/fixtures/initial_data.json
+++ b/chimere/fixtures/initial_data.json
@@ -220,5 +220,16 @@
"name": "Webm (webm)",
"mime_type": "audio/webm"
}
+ },
+ {
+ "pk": 15,
+ "model": "chimere.multimediatype",
+ "fields": {
+ "available": true,
+ "media_type": "I",
+ "iframe": false,
+ "name": "URL",
+ "mime_type": ""
+ }
}
]
diff --git a/chimere/models.py b/chimere/models.py
index 02eee76..d06e42d 100644
--- a/chimere/models.py
+++ b/chimere/models.py
@@ -312,7 +312,7 @@ class Marker(GeographicItem):
@property
def multimedia_items(self):
pict = list(self.pictures.filter(miniature=False).all())
- mm = list(self.multimedia_files.all())
+ mm = list(self.multimedia_files.filter(miniature=False).all())
items = [(item.order, item) for item in pict + mm]
return [item for order, item in sorted(items)]
@@ -321,6 +321,10 @@ class Marker(GeographicItem):
return list(self.pictures.filter(miniature=True))
@property
+ def default_multimedia_items(self):
+ return list(self.multimedia_files.filter(miniature=True))
+
+ @property
def date(self):
if settings.CHIMERE_DAYS_BEFORE_EVENT:
return self.start_date
@@ -467,6 +471,8 @@ class MultimediaFile(models.Model):
url = models.URLField(_(u"Url"), max_length=200)
order = models.IntegerField(_(u"Order"), default=1)
multimedia_type = models.ForeignKey(MultimediaType)
+ miniature = models.BooleanField(_(u"Display inside the description?"),
+ default=settings.CHIMERE_MINIATURE_BY_DEFAULT)
def __unicode__(self):
return self.name or u""
@@ -491,7 +497,8 @@ class PictureFile(models.Model):
height_field='height', width_field='width')
height = models.IntegerField(_(u"Height"))
width = models.IntegerField(_(u"Width"))
- miniature = models.BooleanField(_(u"Display inside the description?"))
+ miniature = models.BooleanField(_(u"Display inside the description?"),
+ default=settings.CHIMERE_MINIATURE_BY_DEFAULT)
order = models.IntegerField(_(u"Order"), default=1)
def __unicode__(self):
diff --git a/chimere/static/chimere/css/styles.css b/chimere/static/chimere/css/styles.css
index bdcc9f9..504bc82 100644
--- a/chimere/static/chimere/css/styles.css
+++ b/chimere/static/chimere/css/styles.css
@@ -241,13 +241,21 @@ ul#action-2 {
top:5px;
}
-#areas{
- padding:0;
- height:115px;
+#areas, #areas-select{
position:absolute;
z-index:5;
+}
+
+#areas-select{
+ left:28px;
+ bottom:65px;
+}
+
+#areas{
bottom:105px;
left:18px;
+ padding:0;
+ height:115px;
width:200px;
overflow:auto;
}
@@ -293,7 +301,7 @@ ul#action-2 {
#detail_content{
overflow:auto;
- height:90%;
+ height:80%;
}
#detail_content img{
@@ -565,7 +573,19 @@ table.inline-table td input[type=text]{
height:400px;
}
+.small-gallery{
+ width:260px;
+ min-height:30px;
+ text-align:center;
+}
+.small-gallery .media-player,
+.small-gallery video,
+.small-gallery iframe
+{
+ width:236px;
+ height:150px;
+}
/** jme **/
diff --git a/chimere/templates/chimere/blocks/multimedia_file.html b/chimere/templates/chimere/blocks/multimedia_file.html
index 6c94451..d9f1fb9 100644
--- a/chimere/templates/chimere/blocks/multimedia_file.html
+++ b/chimere/templates/chimere/blocks/multimedia_file.html
@@ -1,7 +1,15 @@
{% load i18n %}
{% if multimedia_item.picture %}
<img alt="{{multimedia_item.name}}" src='{{MEDIA_URL}}{{multimedia_item.picture}}'/>{% endif %}
-{% if multimedia_item.url and not multimedia_item.multimedia_type.iframe %}
+{% if multimedia_item.url %}
+
+{% if multimedia_item.multimedia_type.iframe %}
+<iframe class='video' src='{{multimedia_item.url}}'>
+</iframe>
+{% else %}
+{% ifequal multimedia_item.multimedia_type.media_type 'I' %}
+<img alt="{{multimedia_item.name}}" src='{{multimedia_item.url}}'/>
+{% else %}
<div class="media-player">
<span class="media-label">{{multimedia_item.name}}</span>
<{% ifequal multimedia_item.multimedia_type.media_type 'A' %}audio poster="{{STATIC_URL}}chimere/img/8thNote.png"{% else %}video{% endifequal %} preload="none" controls="controls">
@@ -15,7 +23,7 @@
</div>
</div>
</{% ifequal multimedia_item.multimedia_type.media_type 'A' %}audio{% else %}video{% endifequal %}>
-</div>{% endif %}
-{% if multimedia_item.multimedia_type.iframe %}
-<iframe class='video' src='{{multimedia_item.url}}'>
-</iframe>{% endif %}
+</div>
+{% endifequal %}
+{% endif %}
+{% endif %}
diff --git a/chimere/templates/chimere/detail.html b/chimere/templates/chimere/detail.html
index 06d9385..3f68ee9 100644
--- a/chimere/templates/chimere/detail.html
+++ b/chimere/templates/chimere/detail.html
@@ -1,7 +1,14 @@
-{% load i18n sanitize %}
+{% load i18n sanitize chimere_tags %}
<h2 class='ui-widget ui-state-default ui-corner-all ui-widget-header'>{{ marker.name }}</h2>
<div id='detail_content'>
- {% for picture in marker.default_pictures %}<img src='{{MEDIA_URL}}{{picture.picture}}' alt='{{marker.name}}'/>{%endfor%}
+ <div class='small-gallery'>
+ {% for picture in marker.default_pictures %}
+ {% multimedia_render picture %}
+ {%endfor%}
+ {% for multimedia_item in marker.default_multimedia_items %}
+ {% multimedia_render multimedia_item %}
+ {%endfor%}
+ </div>
<div>
{% if dated %}
<p id='detail_start_date'><label>{% trans "Date:" %}</label> <span>{{marker.start_date|date:"D d M Y"}}
@@ -37,26 +44,7 @@
</ul>
{% for multimedia_item in marker.multimedia_items %}
<div id="tab-{{ forloop.counter }}" class='{% ifequal multimedia_item.multimedia_type.media_type 'V' %}video{% else %}other{% endifequal %}'>
- {% if multimedia_item.picture %}
- <img alt="{{multimedia_item.name}}" src='{{MEDIA_URL}}{{multimedia_item.picture}}'/>{% endif %}
- {% if multimedia_item.url and not multimedia_item.multimedia_type.iframe %}
- <div class="media-player">
- <span class="media-label">{{multimedia_item.name}}</span>
- <{% ifequal multimedia_item.multimedia_type.media_type 'A' %}audio poster="{{STATIC_URL}}chimere/img/8thNote.png"{% else %}video{% endifequal %} preload="none" controls="controls">
- <source src="{{multimedia_item.url}}" type="{{multimedia_item.multimedia_type.mime_type}}" />
- <div class="fallback">
- <div class="fallback-text">
- <p>{% trans "Please use a modern browser or install the non free Flash-Plugin."%}</p>
- <ul>
- <li><a class="source" href="{{multimedia_item.url}}">{{multimedia_item.name}}</a></li>
- </ul>
- </div>
- </div>
- </{% ifequal multimedia_item.multimedia_type.media_type 'A' %}audio{% else %}video{% endifequal %}>
- </div>{% endif %}
- {% if multimedia_item.multimedia_type.iframe %}
- <iframe class='video' src='{{multimedia_item.url}}'>
- </iframe>{% endif %}
+ {% multimedia_render multimedia_item %}
</div>{% endfor %}
</div>
</div>
diff --git a/chimere/templatetags/chimere_tags.py b/chimere/templatetags/chimere_tags.py
index a3f6f0b..5346cf3 100644
--- a/chimere/templatetags/chimere_tags.py
+++ b/chimere/templatetags/chimere_tags.py
@@ -114,3 +114,10 @@ def map_params(context):
context_data['p_checked_categories'] = ",".join(cats)
return context_data
+@register.inclusion_tag('chimere/blocks/multimedia_file.html',
+ takes_context=True)
+def multimedia_render(context, multimedia_file):
+ context['multimedia_file'] = multimedia_file
+ return context
+
+