diff options
| 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 |
| commit | b633752d5dcf26a94048d267f98738bf5dbcdbda (patch) | |
| tree | 8276efc350edcd768febd6dca92c7110cdac9d32 | |
| parent | 6cb771105f6f63613e7e143282d599225873eb69 (diff) | |
| download | Chimè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.py | 2 | ||||
| -rw-r--r-- | chimere/fixtures/initial_data.json | 11 | ||||
| -rw-r--r-- | chimere/models.py | 11 | ||||
| -rw-r--r-- | chimere/static/chimere/css/styles.css | 28 | ||||
| -rw-r--r-- | chimere/templates/chimere/blocks/multimedia_file.html | 18 | ||||
| -rw-r--r-- | chimere/templates/chimere/detail.html | 32 | ||||
| -rw-r--r-- | chimere/templatetags/chimere_tags.py | 7 |
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 + + |
