from archive import settings
from django.contrib.auth import logout
-from django.contrib.auth.decorators import login_required, permission_required
+from django.contrib.auth.decorators import permission_required
from django.core.urlresolvers import reverse
from django.db.models import Q, Max
from django.http import Http404, HttpResponse
from archive.utils import all_files
-@login_required
def list_new(request):
division = 'new'
if not os.path.isfile(old_path):
raise Http404
- try:
- os.link(old_path, new_path)
- except OSError:
- # destination file exists, don't overwrite it
- # TODO: this should probably be more informative
- return redirect(file_new, filename)
- else:
- os.unlink(old_path)
- audiobook.delete()
+ success = False
+ try_new_path = new_path
+ try_number = 0
+ while not success:
+ try:
+ os.link(old_path, try_new_path)
+ except OSError:
+ # destination file exists, don't overwrite it
+ try_number += 1
+ parts = new_path.rsplit('.', 1)
+ parts[0] += '_%d' % try_number
+ try_new_path = ".".join(parts)
+ else:
+ os.unlink(old_path)
+ audiobook.delete()
+ success = True
return redirect(list_unmanaged)
return response
-@login_required
def list_unpublished(request):
division = 'unpublished'
return render(request, "archive/list_unpublished.html", locals())
-@login_required
def list_publishing(request):
division = 'publishing'
return render(request, "archive/list_publishing.html", locals())
-@login_required
def list_published(request):
division = 'published'
path = audiobook.source_file.path[len(settings.FILES_PATH):].lstrip('/')
# for tags update
- tags = mutagen.File(audiobook.source_file.path)
+ tags = mutagen.File(audiobook.source_file.path.encode('utf-8'))
if not tags:
tags = {}
form = AudiobookForm(instance=audiobook)
return render(request, "archive/file_managed.html", locals())
-@login_required
def list_unmanaged(request):
division = 'unmanaged'
return render(request, "archive/list_unmanaged.html", locals())
-@login_required
def file_unmanaged(request, filename):
division = 'unmanaged'