display videos on front-end + fix sort bug
This commit is contained in:
parent
8af6079dc5
commit
82e75e0fc3
|
@ -94,6 +94,15 @@ class ItfModel(models.Model):
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
def get_videos(self):
|
||||||
|
from mediagallery.models import YoutubeVideo
|
||||||
|
|
||||||
|
if self.galleries:
|
||||||
|
qset = Youtube.objects.filter(album__in=self.galleries.all())
|
||||||
|
if qset.count() == 0:
|
||||||
|
return False
|
||||||
|
return qset[0:9]
|
||||||
|
|
||||||
#Returns the title for this object, used as title of page, title of object, and by default, title in left hand display. By default, is a field called 'title', but subclasses can over-ride either title field or the get_title method and return anything.
|
#Returns the title for this object, used as title of page, title of object, and by default, title in left hand display. By default, is a field called 'title', but subclasses can over-ride either title field or the get_title method and return anything.
|
||||||
def get_title(self):
|
def get_title(self):
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -4,6 +4,7 @@ from ox.django.fields import DictField
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.contrib.contenttypes import generic
|
from django.contrib.contenttypes import generic
|
||||||
from django.core.files.base import ContentFile
|
from django.core.files.base import ContentFile
|
||||||
|
from sorl.thumbnail import get_thumbnail
|
||||||
|
|
||||||
class GalleryAlbum(ItfModel):
|
class GalleryAlbum(ItfModel):
|
||||||
'''
|
'''
|
||||||
|
@ -21,6 +22,25 @@ class GalleryAlbum(ItfModel):
|
||||||
def get_edit_url(self):
|
def get_edit_url(self):
|
||||||
return '/mediagallery/edit/%d' % self.id
|
return '/mediagallery/edit/%d' % self.id
|
||||||
|
|
||||||
|
def thumbnail(self):
|
||||||
|
if Photo.objects.filter(album=self).count() == 0:
|
||||||
|
return None
|
||||||
|
return Photo.objects.filter(album=self)[0].image
|
||||||
|
|
||||||
|
def get_dict(self):
|
||||||
|
return {
|
||||||
|
'photos': Photo.objects.filter(album=self),
|
||||||
|
'videos': YoutubeVideo.objects.filter(album=self),
|
||||||
|
'links': GalleryLink.objects.filter(album=self)
|
||||||
|
}
|
||||||
|
|
||||||
|
def get_json(self):
|
||||||
|
return {
|
||||||
|
'photos': [p.get_dict() for p in Photo.objects.filter(album=self)],
|
||||||
|
'videos': [y.get_dict() for y in YoutubeVideo.objects.filter(album=self)],
|
||||||
|
'links': [l.get_dict() for l in GalleryLink.objects.filter(album=self)]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class GalleryItem(models.Model):
|
class GalleryItem(models.Model):
|
||||||
title = models.CharField(max_length=512, blank=True, null=True)
|
title = models.CharField(max_length=512, blank=True, null=True)
|
||||||
|
@ -48,6 +68,16 @@ class Photo(GalleryItem):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def get_thumbnail(self, size='100x100'):
|
||||||
|
return get_thumbnail(self.image, size).url
|
||||||
|
|
||||||
|
def get_dict(self):
|
||||||
|
return {
|
||||||
|
'id': self.id,
|
||||||
|
'title': self.title,
|
||||||
|
'thumb640': self.get_thumbnail(size='640')
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class YoutubeVideo(GalleryItem):
|
class YoutubeVideo(GalleryItem):
|
||||||
youtube_id = models.CharField(max_length=64)
|
youtube_id = models.CharField(max_length=64)
|
||||||
|
@ -58,10 +88,28 @@ class YoutubeVideo(GalleryItem):
|
||||||
def thumbnail(self):
|
def thumbnail(self):
|
||||||
return "http://i.ytimg.com/vi/%s/default.jpg" % self.youtube_id
|
return "http://i.ytimg.com/vi/%s/default.jpg" % self.youtube_id
|
||||||
|
|
||||||
|
def iframe(self):
|
||||||
|
return '<iframe width="560" height="315" src="http://www.youtube.com/embed/%s" frameborder="0" allowfullscreen></iframe>' % self.youtube_id
|
||||||
|
|
||||||
|
def get_dict(self):
|
||||||
|
return {
|
||||||
|
'id': self.id,
|
||||||
|
'youtube_id': self.youtube_id,
|
||||||
|
'thumbnail': self.thumbnail(),
|
||||||
|
'iframe': self.iframe()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class GalleryLink(GalleryItem):
|
class GalleryLink(GalleryItem):
|
||||||
url = models.URLField(verify_exists=False, max_length=1024)
|
url = models.URLField(verify_exists=False, max_length=1024)
|
||||||
|
|
||||||
|
def get_dict(self):
|
||||||
|
return {
|
||||||
|
'id': self.id,
|
||||||
|
'title': self.title,
|
||||||
|
'url': self.url
|
||||||
|
}
|
||||||
|
|
||||||
#class Video(GalleryItem):
|
#class Video(GalleryItem):
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
|
|
|
@ -115,6 +115,10 @@ padding-right:10px;
|
||||||
float:left;
|
float:left;
|
||||||
/*border-bottom:1px solid #f0dfdf;*/}
|
/*border-bottom:1px solid #f0dfdf;*/}
|
||||||
|
|
||||||
|
.tab_content {
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
|
||||||
#selection
|
#selection
|
||||||
{padding-left:6px;
|
{padding-left:6px;
|
||||||
/*border-top:1px solid #f0dfdf;*/
|
/*border-top:1px solid #f0dfdf;*/
|
||||||
|
|
|
@ -7,9 +7,18 @@
|
||||||
$(".tab_content").hide(); //Hide all tab content
|
$(".tab_content").hide(); //Hide all tab content
|
||||||
var activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the active tab + content
|
var activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the active tab + content
|
||||||
$(activeTab).fadeIn(); //Fade in the active ID content
|
$(activeTab).fadeIn(); //Fade in the active ID content
|
||||||
|
location.hash = activeTab.replace("#", "");
|
||||||
return false;
|
return false;
|
||||||
// var queryData = {};
|
// var queryData = {};
|
||||||
});
|
});
|
||||||
|
//$(".tab_content").hide(); //Hide all content
|
||||||
|
|
||||||
|
if (location.hash != '') {
|
||||||
|
$('a[href=' + location.hash + ']').closest('li').click();
|
||||||
|
//console.log('a[href=#' + location.hash + ']');
|
||||||
|
} else {
|
||||||
|
$("ul.tabsInnerRight li:first").click();
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
|
|
||||||
if (queryData.hasOwnProperty("innertab")) {
|
if (queryData.hasOwnProperty("innertab")) {
|
||||||
|
@ -23,7 +32,7 @@
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
//When page loads...
|
//When page loads...
|
||||||
$(".tab_content").hide(); //Hide all content
|
|
||||||
$("ul.tabsInnerRight li:first").click() //addClass("active").show(); //Activate first tab
|
//addClass("active").show(); //Activate first tab
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -241,18 +241,18 @@ $(function() {
|
||||||
$('#listForm').submit(function(e) {
|
$('#listForm').submit(function(e) {
|
||||||
return true;
|
return true;
|
||||||
// e.preventDefault();
|
// e.preventDefault();
|
||||||
doListLoading();
|
// doListLoading();
|
||||||
var urlString = "?tab_id=" + $('.innerSelected').attr("data-id") + "&sort=" + sortString + "&search=" + searchTerm;
|
// var urlString = "?tab_id=" + $('.innerSelected').attr("data-id") + "&sort=" + sortString + "&search=" + searchTerm;
|
||||||
var formData = getSearchFormJSON();
|
// var formData = getSearchFormJSON();
|
||||||
// delete(formData.object_id);
|
//// delete(formData.object_id);
|
||||||
var urlString = JSONtoQueryString(formData);
|
// var urlString = JSONtoQueryString(formData);
|
||||||
// console.log(urlString);
|
//// console.log(urlString);
|
||||||
History.pushState(formData, "", urlString);
|
// History.pushState(formData, "", urlString);
|
||||||
$.getJSON("/m/get_list", formData, function(data) {
|
// $.getJSON("/m/get_list", formData, function(data) {
|
||||||
stopListLoading(data);
|
// stopListLoading(data);
|
||||||
displayList(data.items);
|
// displayList(data.items);
|
||||||
$('#object_id').val('');
|
// $('#object_id').val('');
|
||||||
});
|
// });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
@ -270,6 +270,10 @@ $(function() {
|
||||||
$('#listForm').submit();
|
$('#listForm').submit();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#orderBySelect').change(function() {
|
||||||
|
$('#listForm').submit();
|
||||||
|
});
|
||||||
|
|
||||||
// var State = History.getState();
|
// var State = History.getState();
|
||||||
// console.log(State);
|
// console.log(State);
|
||||||
|
|
||||||
|
|
|
@ -156,7 +156,22 @@ $(function() {
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
<div class="addComments">
|
<div class="addComments">
|
||||||
<h4>Your comments</h4>
|
<h4>Your comments</h4>
|
||||||
{% render_comment_form for obj %}
|
|
||||||
|
<div id="comment_form">
|
||||||
|
{% get_comment_form for obj as form %}
|
||||||
|
<form action="{% comment_form_target %}" method="post">
|
||||||
|
{% csrf_token %}
|
||||||
|
<input type="hidden" name="next" value="{{ obj.get_absolute_url }}#buzz" />
|
||||||
|
{{ form.as_p }}
|
||||||
|
<p class="submit">
|
||||||
|
<input type="submit" name="post" class="submit-post" value="Post" />
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
<script>
|
||||||
|
$('#id_honeypot').closest('p').hide();
|
||||||
|
</script>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="addComments">
|
<div class="addComments">
|
||||||
|
@ -185,7 +200,8 @@ $(function() {
|
||||||
<!-- <br /><br />-->
|
<!-- <br /><br />-->
|
||||||
<!-- </div>-->
|
<!-- </div>-->
|
||||||
<!-- <br />-->
|
<!-- <br />-->
|
||||||
<!-- <a href="" class="rightFloat">More>></a>
-->
|
<!-- <a href="" class="rightFloat">More>></a>
|
||||||
|
-->
|
||||||
|
|
||||||
</div> <!-- end buzz -->
|
</div> <!-- end buzz -->
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ $(function() {
|
||||||
<li><a href="#productions">Productions</a></li>
|
<li><a href="#productions">Productions</a></li>
|
||||||
<li><a href="#people">People</a></li>
|
<li><a href="#people">People</a></li>
|
||||||
<li><a href="#notes">Notes</a></li>
|
<li><a href="#notes">Notes</a></li>
|
||||||
<li><a href="#gallery">Gallery</a></li>
|
{% if obj.galleries.count %} <li><a href="#gallery">Gallery</a></li> {% endif %}
|
||||||
{% if resources %}<li><a href="#resources">Resources</a></li>{% endif %}
|
{% if resources %}<li><a href="#resources">Resources</a></li>{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
@ -273,29 +273,27 @@ $(function() {
|
||||||
|
|
||||||
<div class="imgVideoBlock">
|
<div class="imgVideoBlock">
|
||||||
<h3 class="orange">Photos</h3>
|
<h3 class="orange">Photos</h3>
|
||||||
|
{% for g in obj.galleries.all %}
|
||||||
<img src="/static/images/150x150.jpg" width="160" height="120" alt="" />
|
{% thumbnail g.thumbnail "160x120" crop="center" as thumb %}
|
||||||
<img src="/static/images/150x150.jpg" width="160" height="120" alt="" />
|
<img src="{{ thumb.url }}" width="160" height="120" alt="{{ g.title }}" />
|
||||||
<img src="/static/images/150x150.jpg" width="160" height="120" alt="" />
|
{% endthumbnail %}
|
||||||
<img src="/static/images/150x150.jpg" width="160" height="120" alt="" />
|
{% endfor %}
|
||||||
<img src="/static/images/150x150.jpg" width="160" height="120" alt="" />
|
|
||||||
<img src="/static/images/150x150.jpg" width="160" height="120" alt="" />
|
|
||||||
|
|
||||||
<a href="" class="moreLink">More»</a>
|
<!-- <a href="" class="moreLink">More»</a> -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<div class="imgVideoBlock">
|
{% if obj.get_videos %}
|
||||||
<h3 class="orange">Videos</h3>
|
<div class="imgVideoBlock">
|
||||||
<img src="/static/images/150x150.jpg" width="160" height="120" alt="" />
|
<h3 class="orange">Videos</h3>
|
||||||
<img src="/static/images/150x150.jpg" width="160" height="120" alt="" />
|
{% for v in obj.get_videos %}
|
||||||
<img src="/static/images/150x150.jpg" width="160" height="120" alt="" />
|
<a href="http://youtu.be/{{ v.youtube_id }}" class="youtubeLink" target="_blank">
|
||||||
<img src="/static/images/150x150.jpg" width="160" height="120" alt="" />
|
<img src="{{ v.thumbnail }}" />
|
||||||
<img src="/static/images/150x150.jpg" width="160" height="120" alt="" />
|
</a>
|
||||||
<img src="/static/images/150x150.jpg" width="160" height="120" alt="" />
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
<a href="" class="moreLink">More»</a>
|
<!-- <a href="" class="moreLink">More»</a> -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div> <!-- end gallery -->
|
</div> <!-- end gallery -->
|
||||||
|
|
Loading…
Reference in New Issue
Block a user