forked from 0x2620/pandora
files
This commit is contained in:
parent
b42dfb5e0b
commit
17791da015
3 changed files with 100 additions and 19 deletions
|
@ -229,7 +229,8 @@ class File(models.Model):
|
||||||
'name': self.name,
|
'name': self.name,
|
||||||
'size': self.size,
|
'size': self.size,
|
||||||
'info': self.info,
|
'info': self.info,
|
||||||
'instances': self.instances.count()
|
'instances': self.instances.count(),
|
||||||
|
'is_main': self.is_main
|
||||||
}
|
}
|
||||||
if keys:
|
if keys:
|
||||||
for k in data.keys():
|
for k in data.keys():
|
||||||
|
|
|
@ -14,7 +14,7 @@ from ox.django.decorators import login_required_json
|
||||||
from ox.django.shortcuts import render_to_json_response, get_object_or_404_json, json_response
|
from ox.django.shortcuts import render_to_json_response, get_object_or_404_json, json_response
|
||||||
from ox.django.views import task_status
|
from ox.django.views import task_status
|
||||||
|
|
||||||
from item.utils import parse_path
|
from item import utils
|
||||||
from item.models import get_item
|
from item.models import get_item
|
||||||
from item.views import _parse_query
|
from item.views import _parse_query
|
||||||
import item.tasks
|
import item.tasks
|
||||||
|
@ -244,7 +244,7 @@ def editFile(request):
|
||||||
if f.item.id != data['itemId']:
|
if f.item.id != data['itemId']:
|
||||||
if len(data['itemId']) != 7:
|
if len(data['itemId']) != 7:
|
||||||
folder = f.instances.all()[0].folder
|
folder = f.instances.all()[0].folder
|
||||||
item_info = parse_path(folder)
|
item_info = utils.parse_path(folder)
|
||||||
item = get_item(item_info)
|
item = get_item(item_info)
|
||||||
else:
|
else:
|
||||||
item = get_item({'imdbId': data['itemId']})
|
item = get_item({'imdbId': data['itemId']})
|
||||||
|
@ -419,27 +419,14 @@ Positions
|
||||||
elif 'keys' in query:
|
elif 'keys' in query:
|
||||||
response['data']['items'] = []
|
response['data']['items'] = []
|
||||||
qs = models.File.objects.filter(item__in=query['qs'])
|
qs = models.File.objects.filter(item__in=query['qs'])
|
||||||
qs = _order_query(qs, query['sort'])
|
#qs = _order_query(qs, query['sort'])
|
||||||
keys = query['keys']
|
keys = query['keys']
|
||||||
qs = qs[query['range'][0]:query['range'][1]]
|
qs = qs[query['range'][0]:query['range'][1]]
|
||||||
response['data']['items'] = [f.json(keys) for f in qs]
|
response['data']['items'] = [f.json(keys) for f in qs]
|
||||||
else: # otherwise stats
|
else: # otherwise stats
|
||||||
items = query['qs']
|
items = query['qs']
|
||||||
files = models.File.objects.filter(item__in=query['qs'])
|
files = models.File.objects.filter(item__in=query['qs'])
|
||||||
#files = models.File.objects.all().filter(item__in=items).exclude(size__gt=0)
|
response['data']['items'] = files.count()
|
||||||
r = files.aggregate(
|
|
||||||
Sum('duration'),
|
|
||||||
Sum('pixels'),
|
|
||||||
Sum('size')
|
|
||||||
)
|
|
||||||
response['data']['duration'] = r['duration__sum']
|
|
||||||
response['data']['files'] = files.count()
|
|
||||||
response['data']['items'] = items.count()
|
|
||||||
response['data']['pixels'] = r['pixels__sum']
|
|
||||||
response['data']['runtime'] = items.filter(sort__runtime_desc__gt=0).aggregate(Sum('sort__runtime_desc'))['sort__runtime_desc__sum']
|
|
||||||
if response['data']['runtime'] == None:
|
|
||||||
response['data']['runtime'] = 0
|
|
||||||
response['data']['size'] = r['size__sum']
|
|
||||||
return render_to_json_response(response)
|
return render_to_json_response(response)
|
||||||
|
|
||||||
actions.register(findFiles)
|
actions.register(findFiles)
|
||||||
|
|
|
@ -1691,7 +1691,7 @@ var pandora = new Ox.App({
|
||||||
},
|
},
|
||||||
item: function() {
|
item: function() {
|
||||||
var that;
|
var that;
|
||||||
if (app.user.ui.itemView == 'info') {
|
if (app.user.ui.itemView == 'info' || app.user.ui.itemView == 'files') {
|
||||||
that = new Ox.Element('div');
|
that = new Ox.Element('div');
|
||||||
} else if (app.user.ui.itemView == 'player') {
|
} else if (app.user.ui.itemView == 'player') {
|
||||||
that = new Ox.Element('div');
|
that = new Ox.Element('div');
|
||||||
|
@ -1818,6 +1818,99 @@ var pandora = new Ox.App({
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
*/
|
*/
|
||||||
|
} else if (app.user.ui.itemView == 'files') {
|
||||||
|
app.$ui.contentPanel.replace(1,
|
||||||
|
app.$ui.item = new Ox.TextList({
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
align: "left",
|
||||||
|
id: "name",
|
||||||
|
operator: "+",
|
||||||
|
title: "Name",
|
||||||
|
unique: true,
|
||||||
|
visible: true,
|
||||||
|
width: 400
|
||||||
|
},
|
||||||
|
{
|
||||||
|
align: "left",
|
||||||
|
id: "oshash",
|
||||||
|
operator: "+",
|
||||||
|
title: "oshash",
|
||||||
|
visible: true,
|
||||||
|
width: 120
|
||||||
|
},
|
||||||
|
{
|
||||||
|
align: "left",
|
||||||
|
id: "instances",
|
||||||
|
operator: "+",
|
||||||
|
title: "Instances",
|
||||||
|
visible: true,
|
||||||
|
width: 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
align: "left",
|
||||||
|
id: "width",
|
||||||
|
operator: "+",
|
||||||
|
title: "Width",
|
||||||
|
visible: true,
|
||||||
|
width: 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
align: "left",
|
||||||
|
id: "height",
|
||||||
|
operator: "+",
|
||||||
|
title: "Height",
|
||||||
|
visible: true,
|
||||||
|
width: 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
align: "left",
|
||||||
|
id: "duration",
|
||||||
|
operator: "+",
|
||||||
|
title: "Duration",
|
||||||
|
visible: true,
|
||||||
|
width: 80,
|
||||||
|
format: {type: "duration", args: [0, "medium"]}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
align: "left",
|
||||||
|
id: "size",
|
||||||
|
operator: "+",
|
||||||
|
title: "Size",
|
||||||
|
visible: true,
|
||||||
|
width: 80,
|
||||||
|
format: {type: "value", args: ["B"]}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
align: "left",
|
||||||
|
id: "is_main",
|
||||||
|
operator: "+",
|
||||||
|
title: "Main",
|
||||||
|
visible: true,
|
||||||
|
width: 140
|
||||||
|
}
|
||||||
|
],
|
||||||
|
columnsMovable: true,
|
||||||
|
columnsRemovable: true,
|
||||||
|
columnsResizable: true,
|
||||||
|
columnsVisible: true,
|
||||||
|
id: 'files',
|
||||||
|
request: function(data, callback) {
|
||||||
|
//Ox.print('data, Query.toObject', data, Query.toObject())
|
||||||
|
pandora.api.findFiles($.extend(data, {
|
||||||
|
query: {
|
||||||
|
conditions: [{
|
||||||
|
key: 'id',
|
||||||
|
value: result.data.item.id,
|
||||||
|
operator: '='
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
}), callback);
|
||||||
|
},
|
||||||
|
scrollbarVisible: true,
|
||||||
|
sort: [{key: 'name', operator:'+'}]
|
||||||
|
})
|
||||||
|
);
|
||||||
}
|
}
|
||||||
app.$ui.total.html(result.data.item.title + ' (' + result.data.item.director.join(', ') + ')')
|
app.$ui.total.html(result.data.item.title + ' (' + result.data.item.director.join(', ') + ')')
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue