add oshash to changelog, keep upload filename, show direct upload instance

This commit is contained in:
j 2020-08-29 23:32:57 +02:00
parent 800725d54c
commit ffb512a304
2 changed files with 18 additions and 3 deletions

View file

@ -336,7 +336,9 @@ class File(models.Model):
def done_cb():
if done:
self.info.update(ox.avinfo(self.data.path))
info = ox.avinfo(self.data.path)
del info['path']
self.info.update(info)
self.parse_info()
# reject invalid uploads
if self.info.get('oshash') != self.oshash:
@ -486,6 +488,13 @@ class File(models.Model):
data['instances'] = []
if 'path' in data:
data['path'] = os.path.basename(data['path'])
if 'instances' in data and 'filename' in self.info and self.data:
data['instances'].append({
'ignore': False,
'path': self.info['filename'],
'user': f.item.user.username,
'volume': 'Direct Upload'
})
return data
def all_paths(self):

View file

@ -195,7 +195,9 @@ def addMedia(request, data):
response['data']['item'] = f.item.public_id
response['data']['itemUrl'] = request.build_absolute_uri('/%s' % f.item.public_id)
if not f.available:
add_changelog(request, data, f.item.public_id)
changelog_data = data.copy()
changelog_data['oshash'] = oshash
add_changelog(request, changelog_data, f.item.public_id)
else:
if 'item' in data:
i = Item.objects.get(public_id=data['item'])
@ -220,11 +222,15 @@ def addMedia(request, data):
if 'info' in data and data['info'] and isinstance(data['info'], dict):
f.info = data['info']
f.info['extension'] = extension
if 'filename' in data:
f.info['filename'] = data['filename']
f.parse_info()
f.save()
response['data']['item'] = i.public_id
response['data']['itemUrl'] = request.build_absolute_uri('/%s' % i.public_id)
add_changelog(request, data, i.public_id)
changelog_data = data.copy()
changelog_data['oshash'] = oshash
add_changelog(request, changelog_data, i.public_id)
return render_to_json_response(response)
actions.register(addMedia, cache=False)