forked from 0x2620/pandora
expand connections
This commit is contained in:
parent
b4f1b59718
commit
9626995fd4
2 changed files with 22 additions and 1 deletions
|
@ -256,6 +256,18 @@ class Item(models.Model):
|
||||||
self.external_data = data
|
self.external_data = data
|
||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
|
def expand_connections(self):
|
||||||
|
c = self.get('connections')
|
||||||
|
connections = {}
|
||||||
|
if c:
|
||||||
|
for t in c:
|
||||||
|
connections[t] = [{'item': l.itemId, 'title': l.get('title')}
|
||||||
|
for l in Item.objects.filter(itemId__in=c[t])]
|
||||||
|
connections[t].sort(key=lambda a: c[t].index(a['item']))
|
||||||
|
if not connections[t]:
|
||||||
|
del connections[t]
|
||||||
|
return connections
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
year = self.get('year')
|
year = self.get('year')
|
||||||
if year:
|
if year:
|
||||||
|
@ -441,6 +453,9 @@ class Item(models.Model):
|
||||||
if 'cast' in i and isinstance(i['cast'][0], list):
|
if 'cast' in i and isinstance(i['cast'][0], list):
|
||||||
i['cast'] = map(lambda x: {'actor': x[0], 'character': x[1]}, i['cast'])
|
i['cast'] = map(lambda x: {'actor': x[0], 'character': x[1]}, i['cast'])
|
||||||
|
|
||||||
|
if 'connections' in i:
|
||||||
|
i['connections'] = self.expand_connections()
|
||||||
|
|
||||||
if not keys or 'posterRatio' in keys:
|
if not keys or 'posterRatio' in keys:
|
||||||
i['posterRatio'] = self.poster_width / self.poster_height
|
i['posterRatio'] = self.poster_width / self.poster_height
|
||||||
|
|
||||||
|
|
|
@ -304,7 +304,7 @@ pandora.ui.infoView = function(data) {
|
||||||
'Spoofs', 'Spoofed in'
|
'Spoofs', 'Spoofed in'
|
||||||
].forEach(function(key) {
|
].forEach(function(key) {
|
||||||
data.connections[key] && html.push(
|
data.connections[key] && html.push(
|
||||||
formatKey(key) + formatValue(data.connections[key])
|
formatKey(key) + formatConnections(data.connections[key])
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
$div.html(html.join('; '));
|
$div.html(html.join('; '));
|
||||||
|
@ -352,6 +352,12 @@ pandora.ui.infoView = function(data) {
|
||||||
return '<span style="color: rgb(128, 128, 128)">' + str + '</span>';
|
return '<span style="color: rgb(128, 128, 128)">' + str + '</span>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function formatConnections(connections) {
|
||||||
|
return connections.map(function(c) {
|
||||||
|
return '<a href="/' + c.item + '">' + c.title + '</a>';
|
||||||
|
}).join(', ');
|
||||||
|
}
|
||||||
|
|
||||||
function formatValue(value, key) {
|
function formatValue(value, key) {
|
||||||
return (Ox.isArray(value) ? value : [value]).map(function(value) {
|
return (Ox.isArray(value) ? value : [value]).map(function(value) {
|
||||||
return key ?
|
return key ?
|
||||||
|
|
Loading…
Reference in a new issue